前言
金三银四,金九银十,大多数程序员都会选择在这两个时机跳槽(认为公司没发展,没有提升空间,对上级领导不满意的,薪资涨不了,忍了好长时间爆发的机会终于来了)同时也是求职者找工作的好机会。近期有很多朋友也问到了求职方面的问题,那么如何在面试中脱颖而出呢?这里针对1-3年Java开发面试经验做个总结,算是较常见的一些问题。不啰嗦了,直接上干货!
简历
简历的制作不可忽视, 毕竟能让hr中筛选一批人。首先个人的基本信息描述,在期望薪资方面,个人建议先写面议。然后该展示你的技能点及你擅长的领域,其次是你的项目经历及岗位职责。简历制作好了,常用的投递路径一般有智联,boss直聘,51,拉钩,猎聘,接下来就等面试电话吧。那么面试之前应该准备哪些知识点呢?
集合相关问题
1.单例集合的体系结构?
这个时候可能在你说的过程中,面试官会随机的问些问题,例如,ArrList与LinkedList的区别?
2.双列集合的体系结构?
如果提到了这个,那么HashMap是必问的,例如,HashMap的实现原理?HashMap是怎样扩容的?HashMap、HashTable及ConcurrentHashMap的区别?以及哪些集合是线程安全的?(具体回答参照不同jdk版本)在此我向大家推荐一个架构学习交流圈。交流学习伪鑫(同音):tangyu9880(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能获取到学习资源,目前受益良多
线程相关问题
1.创建线程的几种方式?
2.线程同步的方法?
3.notify和notifyall的区别?
4.wait与sleep的区别?
5.如何实现线程安全?
6.线程的状态有哪些?
7.多线程中start()和run()区别?
8.什么是悲观锁,乐观锁?以及优缺点?
JVM相关问题
1.JVM内存结构。
2.Java类加载的过程。
3.垃圾回收机制。
4.常用的JVM调优参数。
5.内存溢出常见的哪几种?导致溢出的常见场景、用过哪些分析工具排查。
数据库相关
1.sql语句的分页查询,左连接,右连接。
2.常用的sql优化及数据库优化手段。
3.什么是存储过程?用什么来调用?以及优缺点。
4.索引的作用?和它的优点缺点是什么。
缓存相关
1.Spring:IOC与DI,Bean的生命周期,SpringAOP以及应用场景,事务的传播机制。
2.SpringMVC:SpringMVC的执行流程,如何实现异常处理,常用的注解有哪些。
3.MyBatis:MyBatis的缓存机制,#与$的区别。
4.Hibernate与MyBatis的区别。
框架相关问题
redis和memcached的区别。redis支持哪些数据结构。redis是单线程的么,所有的工作都是单线程么。redis如何存储一个String的。redis的部署方式,主从,集群。redis的哨兵模式,一个key值如何在redis集群中找到存储在哪里。redis持久化策略。在此我向大家推荐一个架构学习交流圈。交流学习伪鑫(同音):tangyu9880(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能获取到学习资源,目前受益良多
设计模式
1.说说你熟悉的设计模式以及写法。
2.以上设计模式所在的应用场景。
分布式相关
分布式事务的控制。分布式锁如何设计。分布式session如何设计。dubbo的组件有哪些,各有什么作用。zookeeper的负载均衡算法有哪些。dubbo是如何利用接口就可以通信的。
其它
1.==和equals的区别。
2.int和Integer的自动拆箱/装箱相关问题。
3.IO和NIO的区别。
4.重载(Overload)和重写(Override)的区别。
5.String、StringBuffer和StringBuilder的区别。
6.接口和抽象类的区别。(回答注意jdk的版本,在jdk1.8中接口可以有实现)
7.谈谈你对泛型的理解。
8.排序的实现(冒泡、选择、快速等)。
9.去除重复的元素(实际是重写equals和hashcode)。
10.常见Linux命令的写法。
11.tomcat的几种优化方式。
项目描述
如果上述的问题回答的还不错,那么接下来面试官就会让你谈谈你工作的经历,其实就是指的你所做的项目,通常情况面试官会让你描述做的印象比较深刻的项目以及你最近做的项目。比如你在项目中担任的角色,负责的功能模快以及是怎样实现的,整个项目的来龙去脉一定要弄清楚。在此我向大家推荐一个架构学习交流圈。交流学习伪鑫(同音):tangyu9880(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能获取到学习资源,目前受益良多
HR面谈
闯五关斩六将,针对面试官的重重刁难之后,如果到了这一步,那么恭喜你啦,通常情况下offer基本到手,这个时候基本上就是hr和你谈薪资以及公司的概况。确定你入职的时间以及入职所需的材料。
一些小建议
在面试过程中,难免会遇到自己不会的,这个时候也不要担心,毕竟java的知识领域比较广阔,你可以引导面试官,将你所擅长技术的一面展示出来,其实面试官在面试时也是不断的在发现潜力及你的擅长领域。
如果面试没有通过也不要灰心,将没有回答出来的问题及时做好总结,回家查资料整明白,避免下次犯同样的错误。面试多了,你会发现,面试官问的问题基本都是这些,八九不离十,所以总结很重要。
总结
找工作就像找女票一样,毕竟是一个双向的选择,不要抱着畏惧的心态去面试,一定要自信,给面试官的整体印象要积极。相信经过一些面试,大家都会有这些感触,如果这些文字,能够帮助到你,那就更好了,最后衷心的祝愿大家早日找到满意的工作,开开心心的撸代码。
以上内容仅供参考,列举的都是常见问题,频率出现比较高。如有不当之处,还请大家多多指正。