快手一二面经
一面面经:1h10min
- java常见集合,list有哪些,linketlist和arraylist区别,set和list区别
- set里面是对象的话,如何去重
- hashmap和treemap区别,treemap按什么排序
- hashmap解决冲突
- hashmap1.7和1.8有什么优化
- 常见的垃圾回收算法,区别
- 标记算法标记了哪些
- 可达性算法从哪开始找?GCroot
- 标记清除碎片化怎么解决?
- 标记复制算法怎么实现
- 整个垃圾回收机制,从创建到消亡,生命周期(对象创建到消亡)
- 如果一开始创建的对象很大,我们会在哪创建,会进老年代还是年轻代(看一下)
- 讲讲线程池
- 当启动最大线程数,吞吐量下来了,线程会不会回收,怎么回收的,哪些线程被回收
- 用到的拒绝策略,但不想把任务丢弃掉,怎么做
- 进程的调度算法
- sleep和wait的区别
- sleep又叫做休眠态,他还会被执行吗,cpu会被别的线程抢走吗
- 写了个死循环,没有用到sleep,会遇到什么情况
- cpu空转对其他线程造成什么影响
- cpu不能被释放,别的线程抢不到cpu
- tcp和udp区别
- 我们能把udp改造成tcp吗,怎么改造
- tcp怎么保证可靠
- 用过哪些常用的中间件
- mysql聚簇索引和非聚簇索引的区别
- 聚簇索引的叶子节点存的是什么,非聚簇索引的叶子节点存的是什么
- 非聚簇索引是不是都要回表
- mysql用的是聚簇索引还是非聚簇索引
- mysql哪里用到了聚簇索引
- 默认的主键是聚簇索引还是非聚簇索引
- mysql索引的数据结构
- b+树是什么样的,描述一下
- 聚簇索引的叶子节点是单向链表还是双向链表
- b+树是单向链表,mysql中innodb是双向链表,为什么做了这个优化
- mysql主从复制,细节
- MVCC了解吗
- redis简单的字符串的数据结构
- 里面有个char数组,还有个什么
- 既然有char数组,为什么还要有长度
- 跳表解释一下
- 秒杀库存存在哪
- 如何保证redis和数据库一致
- 有两个商品同时过来改变redis,会造成冲突,怎么办
- recketMQ事务型消息是怎么实现的
- 当redis扣到0的时候还有请求怎么处理,怎么解决超卖
- 令牌桶讲一下
- 验证码机制的实现
- 怎么判断是刷单的请求
- 算法:在[0,10]中,找出根号二的值,精确到10的-5次方(没懂,面试官给提示用二分法做,做出来了)
反问环节
面试官:你有问题吗
我:没有
面试官:你就没有啥想问我的?
我:我应该是没有
面试官:你真的没有想问我的么?
我:呃 应该有
然后 balabala
一面结束5分钟后二面
二面面经:40min
- 线程之间的通信
- 加锁的手段除了Sychronized关键字还有哪些
- 悲观锁和乐观锁实现上有什么区别
- 在java里面怎么实现锁到一个资源
- 事务的实现
- mysql有哪些索引方式
- 主键索引和联合索引的区别
- 在网站输入一个url,打开页面之间经历的环节
- 从七层模型中解释一个http从发送到返回经历了哪几层,经历了什么协议
- tcp三次握手四次挥手,为什么是三次不是两次
- 给了三个sql语句,现场写索引进行查询优化,完全搞不懂
- 算法:实现一个生产者消费者模型(不会),实现一个单例模式(不会),二叉树最近祖先节点(心态已崩,大脑空白,就讲了下思路,忘了咋写了) 二面挂