面试java开发,面试官会问哪些问题?

面试java开发,面试官会问哪些问题?
作为一个当初从学校刚毕业找工作而被面试饱经摧残的小白,到现在的java开发从业人员,中间不可谓之不艰辛,当初的屡屡碰壁,工作受挫,一直到现在我仍然认为那是我人生中不可或缺的一段经历。
关于面试的艰辛这里就不多讲了,今天主要的目的还是来给大家分享一些我以往面试时经常会遇到的面试问题,最近在找工作的小伙伴可要仔细看了,都是经验,或多或少都能帮你跳过一些小坑,也能让你在接下来的面试中会有一个警醒。

话不多说,首先:面试的心态很重要

如果可以的话,还是建议以一个和面试官交流的心态身份去面试交流。一些基础的普通面试中也会夹杂有一定的套路,不可谓不防。

在整个的面试过程中,中间肯定也会有答不上来的时候,这个时候,坦然的说不清楚或者不知道,也是可以的; 中间也可以夹杂一些你自己知道并能阐述出来的话,例如思路和问题重点 ,答不出来的时候一定要淡定,在你心里你一定要认为你和面试官是平等的!反过来让你问面试官,他也肯定会有答不上或者懵逼的时候。

面试java开发,面试官会问哪些问题?

接下来就会来到正式的问题环节,我简单的挑出了几个有代表性的:

1.hashmap0.75是什么?构造函数怎么传?线程安全么,不安全会导致什么问题?

2.arraylist和linkedlist区别,arraylist构造函数有什么用,不传入会导致什么问题?同时还是问线程安全么?

3.collections下面的同步方法和concurrent包下的有什么区别?

4.创建线程的三种方式和区别,线程池的构造函数,给定n核cpu,io密集怎么创建线程池,cpu密集怎么创建线程池?

5.jvm有哪些区?cms gc原理,逃逸分析和标量替换是什么?做过哪些调优,用了什么参数?解决过什么内存泄露或者堆栈溢出问题么?用什么工具或者手段监控并解决?

扫描二维码关注公众号,回复: 12118472 查看本文章

6.spring restcontroller和controller区别是什么?autowired和resource 区别是什么?beanfactory和factorybean区别是什么?

7.mybaties的#{}和${}有什么区别?同时引出preparedstatement和statement有什么区别?

8.http怎么开启长连接?缓存怎么实现?

9.描述tcp四次挥手流程和状态

10.mysql常用优化手段,一个字段如果只有0或1需要加索引么?如果还有另外一个字段经常被查询,这俩字段做什么索引?最左前缀原则是什么?如何避免回表?如何实现乐观锁?事务隔离级别都有什么?

11.linux最尾部活动查看实时日志用什么命令?如何查看进程并结束?

12.描述epoll和select原理和差距

13.git merge和rebase区别?cherry-pick是什么?

14.你项目里写什么了,就会问其中实现部分的方案和设计思路,也问技术点。
面试java开发,面试官会问哪些问题?

这里各位感兴趣的小伙伴也可以搜索关注一下我的专栏:《JAVA 进阶集中营》,里面会时常分享最新学习干货和面试文档,有兴趣的大家可以去看看。

下边是我模拟的一个简单的面试记录,大家当个乐子,开心一下吧~

问:说说你的突出点

答:java基础扎实(这个慌说的次数多了,现在说起来都没感觉了,哈哈),框架使用熟练(这个慌说了你们也发现不了,所以也没啥感觉),熟悉Tomcat源码,springMVC源码和结构。

问:如果想要统计springMVC每一个访问时长,放到log文件里,你在哪里做这个统计?为什么?

答:在preHandle拦截器里记录访问开始的时间,在postHandle里判断是哪个访问,计算访问时间并存储。

问:在posthandler里计算,并存储是吧。答:是。

问:为什么?

答了一个错误答案,然后又是一顿鄙视。,,

再问:用一个什么变量存?ThreadLocal?还是一个函数内部局部变量,?

答:线程内,(其实是在猜)。

问:为什么? 你不要猜,也不用在乎我的反应,无论你答什么我都会问你为什么。

答:函数内变量可能会不能覆盖整个访问的历程,,一顿鄙视,然后突然反应过来,不对,我说的有问题,外层函数是可以的,那就放在函数内局部变量里,节省资源。

问:如果我想把计算结果存到log里,在哪里做这个事情?

答:(悠长的停顿) 在posthandler处理结束,返回请求之前

问:为什么?

答:不占用处理请求的资源,(错误答案,已经慌乱)

问:确定?

答:不确定,,,停顿,,不对 ,还是会占用资源。

问:然后呢

答:(不说话了,,,)(后来想想,这事儿应该另起一个线程去做)

(鄙视状,,,)

问:恩,说说Tomcat

答:(内心:幸亏没问tomcat优化,JVM优化,,不过,说说?说啥啊?难道说说这个干啥用的?还是说说哪个公司出的?说这些会不会直接赶人啊,,,就这样过了最少一分钟,哈哈)然后我就说了下tomcat的结构,和启动过程。

接着问:Tomcat和里面的Servlet是一个进程还是多个进程,

答:一个进程内

一顿鄙视,再问:为什么,,,??

答:因为我觉得进程是分配资源的基本单位,一般来讲,一个应用就是一个进程。

问:你确定?

(内心:大爷的,估计已经挂了,那我还怕个球,,,于是乎,坐直,平视,语气和神态突然就平静了)

答:确定。

问:你大学什么专业?学过操作系统吗?

答:计算机科学与技术,当然学过,我清楚的记得这一点,进程是分配资源的基本单位,不过,可能太久了,记不清了(其实内心是:你长的美,你说的都对)。

问:ok,一个应用可以启多个进程吗?

答:不可以

问:(鄙视状)确定?

答:(平静状)不太确定

问:呵呵

答:麻烦您给讲讲吧,我不太懂。

问:一个应用当然是可以启多个线程的,更何况还有跨应用的线程调用,资源也是可以动态分配的,,,(当时没听太懂,也记不清了。)。末了来一句,难道你就没打开过你的资源管理器看过吗?

答:当然看过,不过都是卡了才看,看哪个程序占用太高,给结束了。(内心:看过,但是跟这个问题有毛关系吗??)

上边是俩个长问题,还有一些其他的,例如:

问:你觉得要做一个厉害的程序员应该具备哪些特点?

这个就是一些,FQ啊,工具啊,总结啊,交流啊什么的;比如说,善用google,要至少对一个跨平台的工具很了解,善于学习最新的技术,善于掌握有力的工具,多逛各大社区,善于总结。(我就随便一写,找工作的话,要提前准备类似问题。)
问:我看你学了这么多东西,但是好像没有认真的去思考过为什么,你有没有想过当你记忆达到一个上限时你还能学什么?你还能干什么?

这个当然是要反驳的,我说我当然有思考,然后问你思考的啥,然后答当时就想知道Tomcat到springMVC的衔接是怎么衔接的,然后被鄙视:那你直接打几个断点调试一下不完了吗,java的调试不是很强吗?(貌似这个他也不太确定。而我也不知道断点打到哪去,更不用提怎么调试,哈哈)。

问:我看你这写的有一个了解分布式处理,分布式处理是什么?我怎么没听过。(这个就是一个概念问题,不重要。)

最后的话还是祝各位都能学有所成,面上bat,赢取白富美,走上人生巅峰,最后附上一张宝图:
面试java开发,面试官会问哪些问题?

加油吧,各位骚年们!!!

猜你喜欢

转载自blog.51cto.com/15054045/2563246