前言
多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲。在平时工作中如若使用不当会出现数据错乱、执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关重要。
小编接下来会从基础概念开始到最后的并发模型由浅入深,讲解下线程方面的知识。
一轮:
第一轮面试官(是一位女性,喜欢钻研一些细节性的东西)
自我介绍
1、 HashMap和ArrayList的原理解释下。
2、 Netty原理介绍下。
3. 了解过NIO,BIO,AIO么?介绍下异同,代码中如何使用?
4. 分布式锁用过么?用什么函数?什么使用场景?
5. 能介绍下垃圾回收机制么?
6. redis的数据结构介绍下。项目中用过哪些?什么场景
7. 幂等性是什么?如何保障?
8. 交易系统中的数据一致性咋保障?
二轮:
第二轮面试官(年龄看起来不大,人很好说话,给人一种很舒服的感觉)
自我介绍
9. 项目中的mongoDB使用场景是啥?如何部署的?怎么保证高可用性?
10. JVM的内存结构能介绍下么?
11. CMS和G1的优缺点?什么时候发生FULL GC?什么时候stop the world!
12. 什么样的对象能当根节点?
13. 一个类,两个函数,一读一写,写函数加synchronized,读函数还用加么?voliate关键字啥作用?
14. 数据库设计时,主键咋设?自增好还是非自增好?为啥?
15. mysql的锁类型介绍下
16. 线上CPU 100%了怎么查?
17. 写个算法,给一个数字,一个单调数组中,方法返回数组中第一个大于给定数字的下标,如果没有,返回-1。
第三轮:
第三轮面试官(应该是部门主管,比较严格)
你职业生涯中哪些事比较有亮点?
你的职业规划是啥?以后想怎么发展?
2、spring-cloud是否了解,spring-boot是了解,讲一讲bean的生命周期
3、hashmap-1.8后的改进,hashmap为什么是线程不安全的
4、如何做到线程安全,concurrenthashmap是怎么实现的
5、用到哪些的设计模式
6、ThreadLocal用过吗
7、类的加载机制
8、JVM-内存模型
9、垃圾回收
10、redis源码有读过吗
11、擅长的做什么
12、职业规划是什么
13、考虑过管理吗
《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java优秀开源项目:
-
ali1024.coding.net/public/P7/Java/git
- github.com/spring-projects
最后
2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。
更多JVM面试整理: