面试题day5
作者:互联网
腾讯
-
自我介绍
-
实习项目
-
java里面的线程和操作系统的线程一样吗?
java线程 虚拟机 用户态
os线程 os 核心态
-
说说java里面的gc机制、垃圾回收算法、如何判断一个对象是无用对象?
复制、压缩、清除、分代
根可达算法、循环引用
-
HashMap的底层原理
链表散列
(n-1)&hash
红黑树
-
假设HashMap里面存放100万个对象,那么gc可能会有什么问题?
full gc
hash 碰撞
-
实习的时候看过trpc底层实现吗?怎么实现高并发的?trpc是腾讯自研的rpc框架
-
看过Spring的底层源码吗,说说你知道的?
-
进程调度算法
先来先去服务
时间片轮转法
反馈法
最短进程优先
最短剩余时间优先
最高响应比优先
多级反馈队列调度算法
-
IO多路复用,用过没有?
IO 多路复用模型,通过减少无效的系统调用,减少了对 CPU 资源的消耗。
对同步非阻塞io的升级,节省切换核心态和用户态
-
虚拟内存
通过虚拟技术,将外部存储设备的一部分空间,划分给系统,作为在内存不足时临时用作数据缓存
-
操作系统读写磁盘,影响磁盘读写时间的因素有哪些?
寻道时间、旋转延迟和数据传输时间
-
进程间的通信机制
管道
消息队列
共享内存
信号量
-
进程和线程的区别?
线程 任务调度和系统执行的最小单位
进程 系统资源分配和独立运行的最小单位;
-
进程的地址空间里面有什么?
代码数据、操作系统信息、借鉴jvm
-
线程切换要保存哪些上下文?
当前线程Id、线程状态、堆栈、寄存器状态
-
寄存器有哪些?
-
了解协程吗? 参照差别
协程: 协程是一种用户态的轻量级线程,协程的调度完全由用户控制。
-
Redis常用数据结构?zset底层数据结构?
-
mysql索引的底层原理?mysql应该还问了别的,时间太久忘记了。
b+树
层级低,非叶子节点无数据
-
tcp三次握手、拥塞控制
syn
ack syn
ack
响应超时,减小发送
-
智力题:1000瓶毒药里面只有1瓶是有毒的,问需要多少只老鼠才能在24小时后试出那瓶有毒。
-
算法题:1、二分查找 target
-
二分查找 最左边的target 、二分查找最右边的target
-
洗牌算法
-
最大子数组和
-
实习的时候有了解过那边的一些框架吗?有没有看过源码?
-
http与https的区别?
是否安全、端口、url不同
-
https加密的过程?
非对称加密加密对称加密密钥
RSA DES
-
场景题:有1亿用户和1亿短视频,设计一个实时的日排行榜,展示top100个热门视频,热门视频的统计方法为统计视频的实时观看用户数,根据用户数排行。设计方案后还要求计算使用多少内存,没算出来,心态崩了。
小米
-
自我介绍
-
hashmap的结构
链表散列
(n-1)&hash
红黑树
-
为什么负载因子是0.75(这里我提到了redis的负载因子是1或者5,但没有追问redis的hashmap)
太小会频繁扩容
太大会频繁冲突
-
volatile的作用和原理
禁止指令重排,内存屏障
立即刷新内存变量
-
什么是原子性
操作的不可再分
-
volatile能不能保证原子性
不能 i++
-
数据库隔离级别
ru rc rr 串行
未解决 脏读 不可重复读 幻读
-
幻读举个例子
并行事务插入
-
innodb如何解决幻读
间隙锁 mvcc
-
gc算法有哪些
复制、压缩、清除、分代
-
可达性分析
根可达算法
对象是否废弃
-
判断gc roots的原则是什么
虚拟机栈对象 本地方法栈对象 静态变量 常量
-
算法题 合并有序链表 自己写测试用例
华为
-
手撕:报数,N个人围成一圈编号1-N,每报M个数,就淘汰第M个人,然后从M+1开始重新报M个数,问最后剩下的那个人是谁?
-
==与equals区别
比地址 比数值
string 先比较地址,比较数组长度,以此比较
-
HashMap与HashTable区别
是否线程安全
是否为空
扩容 *2 *2+1
-
重载与重写区别
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
-
final作用
常量
-
创建线程的方法、线程的同步方式
继承Thread类创建线程,并重写该类的run(),调用线程的start()
实现Runnable接口,并实现run(),作为Thread的参数,调用线程的start()
实现Callable接口,并实现call(),创建该类的实例,Future Task类来包装Callable对象,FutureTask对象作为Thread对象的target创建并启动线程
线程池
管程 锁 volatile 阻塞队列
-
OSI七层与综合五层模型
TCP/IP 5层模型中的物理层,对应OSI 7层模型的物理层
TCP/IP 5层模型中的数据链路层,对应OSI 7层模型的数据链路层
TCP/IP 5层模型中的网络层,对应OSI 7层模型的网络层
TCP/IP 5层模型中的传输层,对应OSI 7层模型的传输层
TCP/IP 5层模型中的应用层,对应OSI 7层模型的应用层、表示层和会话层
-
TCP与UDP区别
TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接
TCP提供可靠的服务。UDP尽最大努力交付,即不保证可靠交付
UDP具有较好的实时性,工作效率比TCP高
-
TCP与UDP是哪层协议
传输层
-
ARP协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
-
路由器在哪层
网络层
-
路由器的转发原理
通过使用交换算法检查数据包的目的协议地址,路由器可确定其是否知道如何转发数据包
-
路由转发表有什么内容
目标地址 子网掩码 去往每个目标网段的下一跳和出接口
-
用户态与核心态区别
用户态执行时,进程所能访问的内存空间和对象受到限制,其所处于占有的处理机是可被抢占的 ;
核心态执行中的进程,则能访问所有的内存空间和对象,且所占有的处理机是不允许被抢占的。
-
进程与线程区别
线程 任务调度和系统执行的最小单位
进程 系统资源分配和独立运行的最小单位;
-
从操作系统角度说说堆与栈
堆是在程序运行时申请的动态内存
栈是操作系统在建立某个进程时或者线程,为这个线程建立的存储区域,在编译的时候可以指定需要的栈的大小
-
死锁
死锁是指两个或两个以上的进程(线程)在运行过程中因争夺资源而造成的一种僵局
-
怎么解决死锁
- 预防死锁:通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个条件,来防止死锁的发生。
- 避免死锁:在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。
- 检测死锁:允许系统在运行过程中发生死锁,但可设置检测机构及时检测死锁的发生,并采取适当措施加以清除。
- 解除死锁:当检测出死锁后,便采取适当措施将进程从死锁状态中解脱出来。
-
二叉树遍历 4种
-
morris遍历具体
-
层次遍历
-
栈与队列的区别
-
在校成绩、拿过奖学金吗
-
前端了解什么技术
-
了解js吗
标签:面试题,模型,day5,死锁,TCP,算法,线程,进程 来源: https://www.cnblogs.com/faetbwac/p/16470900.html