【⼩程序】⽬前最全的《Java⾯试题及解析》
开头
在⼯作的过程中,对于 Redis 技术知识的掌握已经成为必须的技能。美团⾯试常常就会被问到Redis相关知识,⽽这次我就差点倒在了美团3⾯,⾯试官连问我以下⼏个Redis的问题,然后就卡壳了…
1. redis了解吗?你说说怎么⽤redis实现分布式锁?
2. Redis常⽤数据结构及底层数据结构实现
3. 如何解决 Redis 的并发竞争 Key 问题
4. 如何保证缓存与数据库双写时的数据⼀致性?
剩下的不太记得了…为此⾯试完回来针Redis专门做了⼀个⾯试问题⼤总结
⼀、不少培训班候选⼈的简历中,缺乏⾜够的商业项⽬年限
不少同学会有这样得感受:投出去不少简历,但就没有⾯试机会,对培训班出⾝的朋友来说,可能这种情况更甚,原因是,这些简历没过筛选。
没过筛选的原因⽆⾮有两个
第⼀,关键技术的项⽬实践经验没达到该职位的规定年限
第⼆,简历上描述的技术和该职位的需求严重不符。
⽐如本岗位需要⼀个有3年Java开发经验的⼈,某简历上写,虽然有3年经验,但不是做Java,只是最近3个⽉在某培训学校⾥呆过,虽然这三个⽉的经历写得花团锦簇,但抱歉,顶天也只能算3个⽉学习经验,甚⾄还没法算成是商业项⽬经验,可能我所在的是⼤公司,所以这类简历⼀定没法通过筛选,更没有⾯试机会。
我看过不少此类简历,相关商业项⽬年限缺乏到不值得⾯试。相反,我也见过不少锦上添花型的培训经历,⽐如某⼈⼀直在做Java,最近参加某个培训班,上了⼤数据或机器学习或云等⾼端技术,那么此类简历是凭⾜够的项⽬年限过筛选,⽽在⾯试中,如果从培训班⾥学到的技能也讲得很好,那么绝对是优先考虑。
这部分能给出的建议是,不论是否参加培训班,⾸先得挖掘相应的商业项⽬经验,如果你的项⽬经验介于学习和商业项⽬之间,那么尽量往商业项⽬上靠。
1.兼职类项⽬,⽐如你本职⼲c#,但帮朋友⼲了私活⽤java,⽽公司职位介绍需要java,那么可以着重
挖掘你的java经验。
2.我知道有些培训班有实训项⽬,就从外⾯公司⾥接了项⽬让⽼师带领着做,这块,⼀定得写成商业项⽬。
3.你之前在公司主要是做测试,但好⽍也⽤过java,那么在申请java⼯作时,⼀定得重点写java。
什么叫商业项⽬?你做的项⽬能挣钱就叫商业项⽬。如何在简历中区分商业项⽬和学习项⽬?突出客户,上线部署过程,项⽬管理和使⽤情况这些要素。
⼆、直接描述培训班学习经历会带来的负⾯影响
我拿到⼀份最近⼏个⽉脱产在培训班学习的简历,我⾸先会想:为什么他要上培训班,是不是之前没有相关经历?相信很多⾯试官都有相关顾虑。如果候选⼈刚从学校⾥出来,公司对他的期望不⾼,那还不要紧。但如果需要的是个有3年经验的岗位,那么就要着重看简历乃⾄重点⾯试了。
java培训怎么学⽐如简历上,除了培训班有相关经验外其它没,那么估计连⾯试机会都没。有些培训班会帮忙优化简历,之前的项⽬经验描述虽然匹配职位介绍,但这类候选⼈会被⾮常仔细地盘问。
⽽且,去培训班⼀般会导致若⼲⽉的空档期,这对下份⼯作来说,不是好事,毕竟拳不离⼿曲不离⼝,⽽且这在背景调查时能通过看社保等看出来,⽆法作假。
换句话说,你在培训班学习脱产的学习经历会给你带来两⼤不利因素,第⼀暗⽰⾯试官你缺乏相关经验,第⼆会有“未被雇佣”的时间段。如果某些同学确实不得不通过培训班来改变⾃⼰,别⽆他法。但如果你⽬前⼯作还算稳定,是想通过培训班来提升⾃⼰,那么如下的建议或许对你有⽤。
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等分布式组件的知识。同时你在平时上班的项⽬⾥也在⽤,也遇到半包粘包或零拷贝等问题,但在上培训班前你没重视,那么你就可以把培训班学到的技能优化这部分的简历。
七、总结:进阶道路可以曲折,但别⼩富即安
培训班出⾝的同学后⾯的发展得靠⾃⼰,刚出来后,可以个能提供实践机会的公司。⽐如我在上海,经常听说有公司招不到⼈,对他们来说,不在乎候选⼈的出⾝,甚⾄不在乎学历,只要能⼲活久⾏,⽽培训班出⾝的同学能证明这点还是绰绰有余的。
另外,我经常到培训班⽹站去了解我的对⼿,在看完他们项⽬描述之余,每次都会看他们学⽣的就业情况,具体我不多说,⼤家也可以⾃⼰观察思考,不过⼤家可以从中看到不少积极的因素:进⼩公司应该是没太⼤问题的。
总之,要不要进培训班⼤家⾃⼰考虑,⾃⼰发⼼看资料也是⼀种选项。不过话说回来,**培训班出⾝的程序员到⼯作并不难,⾄少在上海是这样,就⼯资和⼯作时间的问题。**但稳定后绝不能沾沾⾃喜,更得继续掌握⾼级开发乃⾄架构师的知识,从⽽⼒图进⼤的好的公司,⼒求更⾼⼯资的职位。
最后
以上分享的全部分布式技术专题+⾯试解析+相关的⼿写和学习的笔记pdf,
还有更多Java笔记分享如下:
以上分享的全部分布式技术专题+⾯试解析+相关的⼿写和学习的笔记pdf,
还有更多Java笔记分享如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论