标签:面试题 模型 day5 死锁 TCP 算法 线程 进程
腾讯
-
自我介绍
-
实习项目
-
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。