Java面试,应该准备哪些知识呢?

3 要讲好项目经验,结合项目叙述展示自己的亮点,同时在回答问题中,想尽一切办法亮出自己的优势。

先说下不准备的后果。

1 项目介绍想到哪里就说到哪里,非常有可能只是业务没说技术,然后说了半天无法展示自己的技能,同时给面试官留下思路不清晰的印象。

2 面试问题随着面试官随便问,而且面试官很有可能问及你没掌握没准备技术点。

3 回答问题时仅停留下第一个层面,即只回答“怎么用”,哪怕你空有一身做项目的技能,由于没准备过,所以知道如何展示自己的技能。

4 同样道理,由于没准备,所以无法展示自己的亮点和优势。

对应地,接下来说下Java面试的技巧,先说下如何准备项目说辞。

1 先抛出自己和这个职位的匹配度。

比如可以说,我叫xxx,(省略自我介绍性文字),我之前在java方面有3年(大于等于职位要求)开发经验,有mysql,oracle等项目经验,有nginx,kafka,xxx等的使用经验。

总之先亮出你和职位介绍的匹配度,职位要求上有的技术,如果你有,直接说。这里请注意,不同的公司以及不同的项目,对技术的要求可能大同小异,但一定存在差异,你在面试前,一定要事先阅读该职位的介绍,同时针对性地给出使用过的技术,也就是说,你得为不同的公司,不同的职位准备不同的技术介绍说辞。而且,职位介绍上的技术,如果你不说,人家一定会认为你没用过。

2 介绍项目时,别过多介绍需求,因为面试官不关心这个,需要大致介绍你做的模块,介绍项目流程和使用的管理方式,尤其要说明项目管理和发布用到的组件和技术。

比如你可以说,这个项目里,我做了xx和xx模块,项目规模是多少人,做了多久。这个项目是用敏捷开发的管理方式,我们每天都有站会。这个项目,我们用jenkins发布,用jira管理bug和进度,用maven+github来管理项目,等等。

你这样一说,不仅能证明项目的真实性,而且还能说明,你除了会写代码之外,还了解项目开发的相关流程。但千万记住,大部分求职者会大谈特谈项目的需求和业务流程,然后被面试官打断,你这样一说,由于展示了项目管理方面的技能,所以面试官就有好的印象。

3 介绍好项目概况后,需要立即抛出亮点,但别展开。下面列些哪怕是初级开发也能抛出的亮点。

这个项目里,我解决过了oom问题,有过用redis缓存的经验,解决过redis内存溢出问题,解决过dubbo超时而导致的问题。在项目开发过程中,我还专研过ArrayList和HashMap的底层源码,还看过Spring Boot相关注解的源码。

可以抛出的亮点还包括:用过大数据组件,用过 spring cloud微服务组件,用过k8s,解决过高并发问题,做过压力测试,用过其他组件等等,但是一定要用“在这个项目里,我用到xxx技术”的句式来说,否则面试官大概率会认为你只会理论,项目里没用过。

大家可以对比下不准备面试的求职者,他们大谈特谈项目需求和功能,这就相当于把后面提问的控制权交给面试官。但相反,你不仅列出了你和该职位的匹配度,还用项目管理方式证明了你项目的真实性。更重要的是,你还抛出了诸多分布式组件和解决过的实际问题作为亮点。

**这样一来,不少面试官,尤其是小公司资历比较浅的面试官,往往就可能在听到你的说辞后顺带一问,**比如顺口问,你们项目是怎么用Redis的,你是怎么解决OOM问题的,这样就相当于进入到你事先准备好的范围。

但是请注意,你在介绍项目时,**可以抛出亮点,**比如说解决过oom问题,**但绝不能展开说怎么解决。**原因很简单,你还在介绍项目,如果展开,就相当于条理不清晰。不过你提到的点,如果面试官感兴趣,自然会继续提问,你都不用着急。

至此你就介绍完了项目,这部分的说辞你面试前一定要练习,练习时要结合不同项目的技术需求点做微调。这部分的说辞尽量控制在3分钟以内,尤其地,你需要练习下“顺口抛出亮点说辞”的语气和神态,尽量做到自然,别让面试官感觉你事先刻意准备过。

你要知道,大多数面试官,在面试前是不会看候选人简历的,也不会准备面试所要提问的问题,所以往往会是在面试中随机地想些问题来提问**。**

所以,你一旦抛出了亮点,非常有可能吸引面试官继续提问**,这样的话你可以大概率把面试官的问题引导带到你准备的范围。**

其实后面的内容是讲java程序员如何准备面试时的亮点,虽然这部分内容和介绍项目经验无关,但毕竟也关系到面试的成败,所以就一并给出了。

**先讲下Java核心方面的事先准备和引导相关技巧。**在java核心方面,哪怕初级开发多少也能准备集合、线程和异常处理等方面的说辞。

集合方面,你可以准备下HashMap的底层代码,尤其是和hashcode的源码,同时也可以准备下ArrayList和快速失效(fast fail)的底层代码,随后可以再进一步看下ConcurrentHashMap的读写并发管理部分的代码,因为其中包含volatile,散列表数据结构和线程并发部分的技能,而且jdk1.7和1.8 ConcurrentHashMap的底层代码实现起来还不同,而且ConcurrentHashMap源码网上都有,还不难,所以你尤其可以通过ConcurrentHashMap来展示实力。

**准备好这些亮点以后,你可以在项目介绍时顺带提一句,在我做项目的时候,解决过快速失效的问题,也解决过因hashcode没重写而导致的问题,后来我结合分析源码,不仅解决了问题,而且还了解了问题深层次的原因。**这样一来,面试官非常有可能被吸引过来提问,这样你就能顺势抛出你面试前准备的亮点,而且甚至还可以边写代码边讲述。

在线程方面,准备下锁,volatile,线程池和ThreadLocal的说辞,具体通过ConcurrentHashMap了解下锁(1.7)版本和synchronized+volatile(1.8版本)的用法,以及ThreadLocal里可能引发内存泄漏的问题,这些点网上都有,本文就不展开了,其实也未必多,能讲清楚就行了。

这方面怎么在介绍项目时引导?你可以说,我们项目在xx需求里,用到了ConcurrentHashMap对象,准带着我看了里面的源码,其中包含了线程相关的volatile关键字。然后坐等面试官提问。

最后

金三银四到了,送上一个小福利!

image.png

image.png

专题+大厂.jpg

存中…(img-aqXUQMUn-1714401715665)]

[外链图片转存中…(img-4hDvegfg-1714401715666)]

[外链图片转存中…(img-u5YqqvPM-1714401715666)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值