不得不说,很喜欢b站一面的面试官,不懂的也认真去给我解释,虽然答得并不好,希望能有二面吧。
两个项目:仿牛客网开发、rpc框架
1.如何系统自学,有自己的知识脉络吗
2.自定义的rpc协议,用的什么协议。主流rpc框架的哪些协议,dubbo的几种协议。
3.java原生序列化瓶颈
1 同语言传递
2 序列化太大,性能低
3 涉及反序列化性能(不仅是带宽,还有对cpu的消耗)(没答出来是什么)
4.怎么使用Completefuture优化通信模块
5.redis的zeset功能怎么实现的点赞
6.zset实现的关注功能怎么做的
7.kafka怎么用的,做持久化了吗
8.怎么保证消息不丢失,有什么重试机制吗
9.如果有异步处理,为了保证消息可靠不丢失,怎么去设计
10.对kafka了解不多,不问中间件了
11.redis的使用场景:除了缓存
分布式锁、即时排行榜
12.什么是雪崩、击穿、穿透
13.用了二级缓存避免雪崩,加本地缓存是可以避免雪崩的,但是内存很珍贵,适量用,一般不会做。
14.介绍下concurrenthashmap
15.链表和红黑树转换条件,为什么要以8为分界转换
16.讲一下cas,以及其缺点
除了cpu上下文切换额外消耗,aba问题(没想到),
17.cas能修改对象吗,能,用atomicstampedreference,这个就是用来把对象修改
18.atomic保证什么性,volatile能保证什么性
19.硬件层面如何保证的cas,使用那8个指令,还有缓存一致性协议,mesi(本题就是这个答案)
前提:多核,多个工作内存,和主存之间是有一致性问题,如果修改某个变量,这个变量在另一个工作内存中,那么其他
20.threadlocal使用的注意点
注意弱引用内存泄漏。
21.stream并发流怎么使用
22.场景题
23.spring单例bean线程安全吗,怎么解决的
bean里的属性无状态的,
24.给一个字段加索引,需要考虑哪些方面
25.有没有数据库优化的经验,怎么进行慢查询优化
26.为何覆盖索引会提高效率
27.redis数据底层是怎么存储的
28.怎么知道redis请求到哪个节点上,哈希环,哈希槽了解吗
29.怎么保证哈希倾斜
30.知识点没有成体系,补充一些中间件知识
31.三数之和
具体在个人网站www.congyt.com