java面试问哪些问题?精选必问

你也许能说出一万个不知道原理源码也能胜任工作的理由。但是也改变不了,高质量的人才必须要通过原理源码来筛选的事实!

不要抱怨没有时间学习,去年到今年,一年时间过去了,你是没时间学习,还是有时间也没学习,进步了多少你心里清楚。

[java面试问哪些问题?精选必问!]

纵观目前的Java面试套路,无非可以分为这几个部分,Java基础、主流框架、分布式相关、数据库等。

Java基础

面试官最喜欢问的无非是HashMap,HashMap被经常问的也就是

线程安全相关,为啥线程不安全?

怎么扩容的?JDK1.7和1.8的实现有啥区别?

引出ConcurrentHashMap的实现原理,分段锁怎么做的

接着就是JUC相关的了,根据并发下的三类问题原子性、可见性、有序性引出synchronized、volatile、CAS、线程池等相关问题。问到CAS,一般又会问一下他存在什么问题,比如ABA问题,相关的解决方案等。

细心的你会发现,其实范围并不大,来来去去就是这些题目,但是你却总是答不好,还是那句话,真的不是时间问题,就像女生说的“哪有什么直不直男,只有用不用心罢了!”

框架

框架范围就很大了,一般也会挑你熟悉的框架问,比如最常问的就是Spring了,因为这个基本是标配了。Spring最常问的无非就是IoC、AOP、Bean相关的一些东西,比如生命周期,循环依赖解决等。

当然除了Spring,建议你还要准备一两个自己熟悉的框架。

分布式相关

常见的一些分布式解决方案,比如分布式事务、分布式协调等,会根据你相关使用Dubbo、Spring Cloud问一些相关源码。比如问烂了的,注册中心挂了,服务之间还能不能通信啊这类问题。

当然也还有幂等性,MQ怎么不丢消息,顺序消息等问题。

数据库

数据库最常问的无非就是锁(表锁和行锁),索引(索引分类,什么时候用索引,你们项目是怎么用索引的啊)等

数据库的套路比前面那些都要窄一些,当然如果面试官对数据库特别熟,还会各种深挖下去。

总结

细心的你其实已经发现,面试题其实范围也不大,但是你却始终答得不好,说到底,还是知识体系的匮乏!

不得不承认,我们很多时候都说要“自学”,因为自学显得比较“酷”。但是自学并不是没有任何指导性的资料,凭空对着源码来学。再说了,这些问来问去问烂的面试题,你所谓的“自学”,都能答上了吗?绝大多数人的情况,还是需要有人告诉他,学什么,怎么学!为此,这里分享一个java技术图谱:

java面试问哪些问题?精选必问_第1张图片

你可能感兴趣的:(java,spring,spring,boot,spring,cloud,架构)