大家好,又见面了,我是你们的朋友全栈君。
前言
又到一年金九银十之际。
Java作为目前用户最多,使用范围最广的软件开发技术之一。
Java的技术体系主要由支撑Java程序运行的虚拟机,提供各开发领域接口支持的Java,Java编程语言及许多第三方Jvav框架构成。
其中,以Java的虚拟器为今天的着重点
以下是我整理收藏的一些JVM大厂面试经典问题与相应答案,希望可以给看文的朋友一些帮助
由于篇幅过长,请耐心往下看,文末提供小编收藏已久的JVM面试宝典!
一、不少培训班候选人的简历中,缺乏足够的商业项目年限
不少同学会有这样得感受:投出去不少简历,但就没有面试机会,对培训班出身的朋友来说,可能这种情况更甚,原因是,这些简历没过筛选。
没过筛选的原因无非有两个
- 第一,关键技术的项目实践经验没达到该职位的规定年限
- 第二,简历上描述的技术和该职位的需求严重不符。
比如本岗位需要一个有3年Java开发经验的人,某简历上写,虽然有3年经验,但不是做Java,只是最近3个月在某培训学校里呆过,虽然这三个月的经历写得花团锦簇,但抱歉,顶天也只能算3个月学习经验,甚至还没法算成是商业项目经验,可能我所在的是大公司,所以这类简历一定没法通过筛选,更没有面试机会。
我看过不少此类简历,相关商业项目年限缺乏到不值得面试。相反,我也见过不少锦上添花型的培训经历,比如某人一直在做Java,最近参加某个培训班,上了大数据或机器学习或云等高端技术,那么此类简历是凭足够的项目年限过筛选,而在面试中,如果从培训班里学到的技能也讲得很好,那么绝对是优先考虑。
这部分能给出的建议是,不论是否参加培训班,首先得挖掘相应的商业项目经验,如果你的项目经验介于学习和商业项目之间,那么尽量往商业项目上靠。
1.兼职类项目,比如你本职干c#,但帮朋友干了私活用java,而公司职位介绍需要java,那么可以着重挖掘你的java经验。
2.我知道有些培训班有实训项目,就从外面公司里接了项目让老师带领着做,这块,一定得写成商业项目。
3.你之前在公司主要是做测试,但好歹也用过java,那么在申请java工作时,一定得重点写java。
- 什么叫商业项目?你做的项目能挣钱就叫商业项目。如何在简历中区分商业项目和学习项目?突出客户,上线部署过程,项目管理和使用情况这些要素。
二、直接描述培训班学习经历会带来的负面影响
我拿到一份最近几个月脱产在培训班学习的简历,我首先会想:为什么他要上培训班,是不是之前没有相关经历?相信很多面试官都有相关顾虑。如果候选人刚从学校里出来,公司对他的期望不高,那还不要紧。但如果需要的是个有3年经验的岗位,那么就要着重看简历乃至重点面试了。
比如简历上,除了培训班有相关经验外其它没,那么估计连面试机会都没。有些培训班会帮忙优化简历,之前的项目经验描述虽然匹配职位介绍,但这类候选人会被非常仔细地盘问。
而且,去培训班一般会导致若干月的空档期,这对下份工作来说,不是好事,毕竟拳不离手曲不离口,而且这在背景调查时能通过看社保等看出来,无法作假。
换句话说,你在培训班学习脱产的学习经历会给你带来两大不利因素,第一暗示面试官你缺乏相关经验,第二会有“未被雇佣”的时间段。如果某些同学确实不得不通过培训班来改变自己,别无他法。但如果你目前工作还算稳定,是想通过培训班来提升自己,那么如下的建议或许对你有用。
1.有条件的话,尽量别脱产学,如果有必要,报一个周末班。
2.或者,你可以找些视频资料,边上机边学,不过这就需要一定的毅力。学什么,怎么学?找份大纲和系列的课程资料。
3.还是这句话,首先要做的是,在平时工作中挖掘相关经验。比如你在做测试,想转java,那么在学习之余,一定得在公司里找个java实践机会,怎么找?多观察,多动腿跑,多动手实践,外带多动嘴请教人。要知道,接下来换工作,更看重得是直接的项目经验。
- 那么是否要在简历上写明培训班经历呢?其实这不是问题。当你已经在脱产学了,那么你不写,这段经历又该如何描述呢?如果你是自学,那么公司工作的经历绝对要比培训班经历好看。所以这里的问题还是会归结为:要不要报脱产的培训班,而不是简历该怎么写。
三、大龄转行Vs年轻的初级程序员,公司一般会如何选择?
如果大龄IT人要转行,去培训班咨询,我不知道相关人员会怎么说,但我就从面试官角度来说明。可能我一直在大公司,就站在这个角度来分析。
两份简历
- 一份是28岁,本科,最近1年是java,之前是其它
- 另一份是24岁,全部工作经验是1年,都在做java。
首先看技能,比如基础,对框架的理解,对数据库等优化的技能,如果两者差不多,年轻人很占优势,毕竟钱一般能少给,而且精力充沛。而大龄程序员的经验不对口,本职位用不到。
确实,培训班能提升学习效率,相当于用钱买时间,而有些大龄程序员缺的就是时间。但对这些人而言,更缺乏相关技能的实践经验,如果要报培训班,这是你自己的事情,但同时还得想办法补充相关经验。这点在本文里已经有过描述,在本人的其它博文里,也有相关描述。
四、经过培训班突击后,可以先面试小公司
在上文里,培训班出身的同学可能看到的是比较悲观的描述,这里要说明,因为我所在的公司规模不小,而且给出的工资不算低,所以要求也相对高些。
但大家也可以想下,更多的是中等规模或人数较少的公司,这类公司可能更需要的是能直接动手的人,所以大龄转行或通过培训班突击经验的同学,或者因为相关经验比较少,刚开始可以考虑这类公司。
又如,当我有时候招外包员工时,同等职位的要求也会大大降低。什么叫外包员工呢?
- 比如某大公司A,出于预算的考虑,针对工作3年的初级岗,会开放若干正式员工岗和外包岗。外包岗是,这类员工和某外派公司B签合同,但和正式员工一起上班,这类员工的面试要求会低不少,也经常招些刚从培训班里出来的同学。
此类外包岗,由于要求不高,而且能获取大公司的工作经验,同时若干年后还有可能转成正式员工,可以是相关同学的首选。如果培训班推荐就业的老师没相关渠道,你可以自己通过朋友或猎头找。
五、面试官怎么面试有培训班经历的人?论培训班同学如何准备面试?
上文的主要内容是,如何规划自己的学习和如何挖掘项目经验。哪怕是培训班的学生,简历上只要稍微用心点,通过筛选并不难,但面试前更得准备。
1.如上所述,我首先得考察商业项目经验的真实性,会问:项目几个人做?做了多久?用什么管理方式?(比如敏捷方式)多久发布一次?部署在哪类服务上?如何部署?打包部署流程是什么样的?目前有哪些客户在用?诸如此类问题,确认的是项目真实性。
我听到的不大好的回答有,项目直接部署在windows系统上,直接打成jar包然后手动放到服务器上,没有日志监控等手段,说不清项目的管理方式和发布周期等一定会经历过的要素。有人还会说,做完了,但过了很久,还没客户用,所以没部署,产品网站没流量。至于该怎么说,项目是大家做的,自己得想好。 在我其它博文里,也有相关说辞的介绍。
2.问全栈流程,比如前端用什么,后端用什么,数据库用什么?更重要的是,部署相关的分布式组件大致用什么。我不求候选人讲清楚业务,但要候选人用一个需求点讲清楚全栈流程。培训班出来的同学,往往会某块讲比较清楚,而缺乏整体流程。这块其实也未必要讲非常仔细,比如nginx如何配置负载均衡,我不要求你结合底层代码讲清楚实现机制,你通过配置文件简单说明即可。同时,每块你至少能通过简单的配置和代码讲清楚流程。
3.随后再问技术点。这里的建议是,先刷题,再精通,最好结合需求,通过底层代码说明。
比如考察Java核心知识点,你先通过刷题,了解些基本说辞,先让面试官感觉你全都会。然后深挖一块,比如线程并发,你可以结合你业务需求,说这块你用到线程池,具体参数怎么配,如何同业务整合,这里你可以背一些底层代码,说下线程如何回收,超时时如何处理,这样面试官就会认为你很精通。
4.再问优化点和组件。其实这块已经属于加分项了。比如数据库调优你有哪些经验?框架层面Spring Cloud你用过哪些组件。这里的回答要求是,不求多,但要结合业务说清楚一块。比如数据库调优方面,你说你知道索引,执行计划,分库分表,但都是理论经验。这还不如你就结合一个业务点,本来sql语句怎么样,但我通过加索引,让这句话优化到10秒执行完。类似的,你结合业务说清楚几点,就一定能证明自己的能力。
以上可以说是培训班出身同学面试时的通病,大家如果注意,就可以超越不少对手。
六、简历和面试过程中要不要回避培训经验
可能不同的人有不同的观点,我的建议如下。
-
第一,如果你这个时间段除了写培训班经历没其它好写,与其写待业中,还不如写在培训班里学习。或者你刚从学校里出来,或者刚毕业,本身经验少,那么可以写上培训班经历。
-
第二,刚才我已经给出了写明培训经历的后果,大家如果感觉能在面试中用技术或经验说服面试官,那你可以写上。或者说难听点,债多不愁,你找相关工作时的不利因素也够多了,不差这一条,而又得靠培训班经历来撑台面,那么可以写上。
-
第三,再啰嗦一句,不管如何,更多得是挖掘相关项目经验,而培训经验可以落实到商业项目经验里。比如你报了个周末班,在其中学到了netty等分布式组件的知识。同时你在平时上班的项目里也在用,也遇到半包粘包或零拷贝等问题,但在上培训班前你没重视,那么你就可以把培训班学到的技能优化这部分的简历。
七、总结:进阶道路可以曲折,但别小富即安
培训班出身的同学后面的发展得靠自己,刚出来后,可以找个能提供实践机会的公司。比如我在上海,经常听说有公司招不到人,对他们来说,不在乎候选人的出身,甚至不在乎学历,只要能干活久行,而培训班出身的同学能证明这点还是绰绰有余的。
另外,我经常到培训班网站去了解我的对手,在看完他们项目描述之余,每次都会看他们学生的就业情况,具体我不多说,大家也可以自己观察思考,不过大家可以从中看到不少积极的因素:进小公司应该是没太大问题的。
总之,要不要进培训班大家自己考虑,自己发心看资料也是一种选项。不过话说回来,**培训班出身的程序员找到工作并不难,至少在上海是这样,就工资和工作时间的问题。**但稳定后绝不能沾沾自喜,更得继续掌握高级开发乃至架构师的知识,从而力图进大的好的公司,力求更高工资的职位。
技术学习总结
学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。
最后面试分享
大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
[外链图片转存中…(img-l1avcvhb-1621919818547)]
[外链图片转存中…(img-KZm1QZlT-1621919818550)]
最后,若需要完整pdf版,可以点赞本文后点击这里免费领取
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157092.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...