最近2个周,大大小小的公司面试了10多家,刚开始的时候几乎面试了就没有消息,感觉都回答上来的问题还是没收到offer,后面总结一下,除了专业知识过硬,hr面的时候也会刷人,稍不注意你就被刷了。在此总结一下Java面试中常问的问题和面试应该注意的细节。
一、JavaSE方面:
1.常用的数据结构,Collection,Map的实现类有哪些
2.HashMap底层原理,put方法时如何确定元素的位置
3.ConcurrentHashMap实现原理(1.7和1.8不同)
4.如何自己实现像ReentranLock一样的锁
5.volatile、synchronized、Lock的区别
6.ThreadLocal是什么,怎么实现的
7.Java内存模型是怎样的
8.GC回收的算法有哪些
9.GC回收器有哪些
10.有几种GC,什么情况下触发
11.如何进行jvm调优
二、SpringMVC和SpringBoot方面:
1.Spring的DI怎么实现
2.Spring Aop原理及应用
3.Spring常用的注解和原理
4.SpringBootApplication注解的作用
5.SpringMVC与SpringBoot的关系
6.SpringBoot优点和缺点
7.Spring事务的传播特性有哪些
三、Mybatis
1.Mybatis的一级缓存和二级缓存
2.Mybatis的优点和缺点
3.Mybatis的$与#的区别
4.Mybatis如何将SQL结果集映射成Java对象
5.如何实现一对多、多对多、多对一
6.动态SQL语句有哪些(几乎没问到,但建议正在求职的小伙伴准备一下)
四、SpringCloud
1.SpringCloud常用的组件有哪些
2.HyStrix断路器工作原理
3.ribbon和nginx有什么区别
五、数据库(Mysql为主)
1.Mysql支持索引吗
2.Mysql 常用的存储引擎有哪些
3.MyISam和InnoDB的区别
4.InnoDB的支持的锁有哪些,如何触发表级锁
5.InnoDB的四种隔离策略
6.索引种类
7.索引底层是怎么实现的
8.聚簇索引和非聚簇索引的区别
9.SQL优化方法有哪些(几乎是每家公司的必问的)
10.SQL执行顺序
六、消息队列中间件
1.常用的MQ有哪些
2.如何实现发布订阅系统
3.如何保证消息发布者与消费者的唯一性
目前通过面试,确实提升了不少。刚开始面试的时候,肯定会有几家公司看不起你的,很正常,就当学习,面试后一定要查哪些你不会的问题,不要让同样的问题绊倒两次,后面就会好很多了,渐渐的就会有offer发给你了,这个时候就是选择的时候了。当你感觉到不能提升技术的时候,去面试一定没错。最后,今年因疫情原因,工作不易,祝正在求职的小伙伴早日找到心仪的公司。
全部评论
(9) 回帖