首先想给所有程序员一点建议:在日常工作中,万万不要仅局限于自己手头上的工作,因为自己负责的工作内容可能只是某系统上的“冰山一角”,这个系统是前辈们留下的财富,我们要学会怎么去利用它。这个时候,就需要我们站得高一些,看得远一点,去了解这个系统的整个经脉,揣测当初它设计的“Why?How?”,换做自己应该会怎么做,这样或许你将会离架构师更近一步。
1.做个自我介绍吧。
2.你平时是怎么学习技术的呢?
3.看你的项目,咱们聊聊分布式吧。
4.raft 的缺点,怎么解决?
5.你了解哪些一致性协议?
6.zab 和 raft 比较一下?zab 设置 observer 的好处,坏处?
7.multi-raft 谈一下?
8.cap 了解吗?为什么不能都保证?raft 保证了什么?
9.gossip 了解吗?redis 集群是怎么做到一致性的?
10.有哪些场景需要保证强一致性,有哪些场景需要保证最终一致性?
11.为什么有些场景需要保证可用性?
12.hbase 了解吗?
13.netty 的性能为什么好?pb 的序列化协议为什么性能好?
14.零拷贝讲一下?
15.select 和 epoll 的区别?
16.命令模式了解吗?给我讲一下?
17.代理模式讲一下?应用场景?aop 的实现为什么要用动态代理?
18.raft 的 leader 选举过程?
19.raft 的日志复制过程?
20.日志复制如果使用 follower 来接收日志,leader 崩掉,日志不一致的情况,
怎么设计日志复制功能。
21.es 的前缀查询了解吗?
22.怎么实现一个前缀查询?
23.前缀树存中文的问题?怎么解决?
24.做一道题吧:
一个一维数组,全是0 和 1,找最长的 1 子数组。
拓展一下:一个二维数组,找最大的1 的矩阵 。
26.JVM 内存区域
27.如何排查一下线上 OOM 问题?
28.类加载机制?
29.双亲委派?tomcat 如何打破的
30.你最近读什么书吗?
31.你有什么想问我的吗?
因为好久不刷题,题没写出来,挂在这里了,还是要多刷题。最后祝大家早日上岸,offer 多多。
1.算法题,求数组中位数。
A:使用快排,partition() 返回当前排序索引,如果等于数组长度的一半就能
提前返回。
不过时间复杂度说错了。。其实应该是N,后来面试官帮忙纠错还认真解释,点
赞嗷
2.算法实现用到了重载,重载和重写有什么区别?
A:重写用于多态实现,多态分抽象多态和接口多态,涉及到字节码
invokevirtual this # 和方法表,抽象多态方法解析时调用相同偏移
量的方法代码
接口多态线扫一次寻找对应方法代码。重载用于相同类方法调用跳转。
3.项目用户接口限流怎么实现的?
A:自定义注解 + 配套的注解拦截器,Spring Boot 提供
HandlerInterceptor
快速构建,底层使用反射。
4.谈谈对 Spring AOP IOC 的理解
啊这一开始还以为想知道我对AOP 的理解,扯了一堆切点、增强逻辑啥的。。
后来面试官改问AOP 的实现原理,回答的是 JDK 动态代理和 CGLIB 代理。
5.这两个有啥区别?
A:jdk 动态代理用接口实现,对象需要实现接口;后者用扩展子类实现,private
和final 方法不适用。
6.HashMap 实现
A:经典拉链碰撞,拉链长变红黑树,一顿 bala
7.对应的多线程版本?有啥不同?
A:jdk 1.8 ConcurrentHashMap 使用 CAS 对每个桶位加锁
8.CAS 有啥缺点?
A:说了下竞争激烈时性能明显变慢,
面试官说还有,啊这一时想不起来疯狂顾左右而言他
后来才想起来乐观锁
还有个ABA 问题。。
9.刚提到了红黑树,添加元素相关操作了解吗?
A:只说了左旋、右旋、颜色变换,面试官也没往下问,不用往下解释,算是小
福利把。
10.TCP 拥塞算法了解吗?
A:慢启动、拥塞避免、拥塞发生、快速恢复… 一顿 balabala
11.数据库索引,隔离级别
A:基本功就不说了,补充了下 Innodb 用 next key lock 解决可重复读下的幻读问题,事务隔离A 使用 undo log,D 使用 redo log 实现等等。。
12.索引这么牛逼,我给每列都设一个好吗?
A:这里回答的是辨识度。。其实就是 Innodb 定义的选择性(cardinality)。。
一顿比划大概讲明白了。。
13.还了解什么排序算法吗?A:嘿嘿,碰巧看过 Arrays.sort() 源码,回答了下传入的是 int[] 数组时的
场景,较短(大概40 多)时使用插入排序,较长(大概接近 300)时使用归并排序,中间值使用双基线快排(算法4 有相关讲解)
下面先给大家上一个总的目录大纲,基础的东西就不进行过多的赘述,我们将会从面试必问的说起,同时由于每篇的内容过多,我们也只说重点,太过基础的内容谁都会,我就不多敲字浪费大家的时间了!
有需要的朋友点击这里自取就好了,希望资料对你有帮助!
由于文章篇幅有限,PDF的内容又很多,全部手敲下来很累…所以需要阅读阅读学习的,大家“一件三连后:“查看下方””即可拿到手之后自己学习吧,博主真的打字打累了。
有需要的朋友点击这里自取就好了,希望资料对你有帮助!
预祝大家前程似锦,工作顺利!