字节,抖音搜索一面
1.自我介绍+项目介绍
2.线程安全的HashMap原理,怎么加锁。
3.sychornized的锁升级,对象头
4.ThreadLocal的实现,解决了什么问题,为什么是软引用。
5.四种引用。
6.垃圾回收算法,以及他们的优缺点。
7.线程池是如何管理线程的,线程池的拒绝策略。
8.i/o多路复用,NIO是如何实现的io多路复用(Reactor 模式),epoll与poll的区别,边缘触发与水平触发
9.redis的应用场景,bitmap怎么实现签到,什么是布隆过滤器,HyperLogLog的误差
10.redis过期策略
11.redis主从一致性(比如发生了网络延时)
12.跳表的实现(之前面试其他部门也被问过,也看到过其他人被问过。)
13.有ABC三个线程,实现当ABC三个线程执行完成后,拿到返回结果之后,再执行D线程。(可以用CompletableFuture实现,但是忘了这个类怎么用了,然后用CountLantch实现的)
算法
今天下午3点面的还没收到结果
总体感觉答得不太好,最近java八股没怎么看以为不会问太多。很多地方答的都不太对。
算法用的栈实现,但是最好的实现是用快慢指针+反转+合并。
#字节日常实习#