Java程序员面试经验分享
次面试:
问的基本上都是Java基础的知识,简单的问了些问题,问题大致是以下几个方面的:
1、Java集合类,ArrayList linkedList HashMap等集合类的线程安全问题底层数据结构数组和链表的使用场景还问到了HashMap的源码
2、多线程方面:线程生命周期线程状态线程池
3、Java内存模型CAS原子操作volatile内存语义功能
4、Static final关键字类加载机制初始化顺序
5、Switch case击穿现象等
第二次面试:
问的框架方面和项目方面的问题比较多
1、Java的几大特性继承封装多态抽象
2、问使用的框架spring AOP IOC原理及实现(反射代理源码)
3、设计模式:单例模式
4、版本控制器Git基本命令
5、Java多线程方面问的比较多重排序结合多场景问是否发生重排序线程池构建线程复用
6、类锁对象锁静态锁结合多场景提问
7、Volatile synchronized实现同步的其他方式ReenTrantLook等
8、类加载机制
9、JVM内存模型虚拟机栈本地方法栈堆方法区程序计数器stackoverflowerror异常等
10、Netty框架+socket观察者模式缓存通道
11、网络爬虫url判重
12、因为之前写过一个仿Spring框架,让我讲解实现方式及流程
13、Web容器的工作原理
14、问到反射相关的问题
总结:
1、千万不要太紧张,过度的紧张会影响思路,导致该说的,会说的,都说不清楚甚至说不上来;
2、没有必要问完问题之后马上就回答,可以组织一下自己的语言,然后在回答,回答问题较好有条理,分条分步,这样显得思路很清晰,很熟练;
3、讲话一定要自信,然后语气和语速要和平时一样沉稳,不要显得很急促,或者很沉闷;
4、问一个问题,能多说就多说,在短的时间内,把自己会的东西尽可能多的展示出来,尽量说的有深度,而不是广度。说的太广,给人一种飘渺,什么都懂,也只是懂一点的感觉。从是什么,应用场景,如何应用,原理,底层实现方式,源码这样的方式或思路去回答问题。回答的有深度,就让面试官觉得这个人很行,研究的很透彻;
5、面试中尽量说自己擅长的部分,自己不擅长的方面少说,如果问到的问题确实是你不了解的,可以直接说不清楚或不会,干净利落的回答下一题,一方面拖拖拉拉的回答,给面试官不好的印象,更致命的是影响自己的心态,甚至影响整个面试过程;
6、如果是电话面试或视频一定要找一个自己熟悉的,安静的环境。
微信扫码关注公众号
获取更多考试热门资料