JAVA技术面试,这些坑你踩过几个?

技术面试时,需要准备什么?

本文从“必备项”和“加分项”两个角度分析,教你如何拿下高薪offer。

一、必备项

0.自我介绍

表达流畅,不要太差即可

1.基础

坑:【答案很标准】面试时的回答,一定不要背网上《面试大全》中的标准答案,一定要有自己的思想 (哪怕有少量错误) 。

常见的题,一定要提前准备好。例如,以下列举的几乎都是必考题目:

arraylist/hashmap的源码、实现原理 ,冒泡排序/快速排序、 单例模式/工厂模式/动态工厂、谈谈你对面向对象的理解, 事务ACID/隔离级别 ,Spring IOC/AOP

建议:自己的理解 ,或者搜博客/githug上大神的博文。也就是说,可以将 面试题中的问题 在博客、github上搜答案,而不要死记“XXX面试大全”中附带的答案(那些答案往往很浅)。总之,要在自己写答案时,向面试官传达“我的答案是自己写的,我是一个有独立思维的人,而不是网上抄的”。

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

2.技术列表

掌握程度

坑:“精通” (3年以内的开发者,几乎没人敢说“精通”哪一门技术)

建议:掌握、熟练、理解 ,会使用

坑:个人掌握的技能过于“标准化”,明显就是培训、或者看某套视频学出来。如:java + 数据库+web前端+jsp/servlet+ssm +boot/cloud

建议:一般而言,自学成才的人比培训出来的学生 更具有独立思考的能力,因此在相同的条件下,企业更喜欢没有参加过培训的学生。

建议写上2-3门非培训机构标配课程,如service mesh、netty等(最好写与高并发、分布式有关的,技术的名字相对“少见”但又很重要的)。

对面试而言,这些“少见”的技术,只要你写上了,并且能把其中任意一个核心知识点说明白,就已经非常加分了。(假设Spring是一个“少见”的技术,那么你只要在面试时解释一下什么是IoC就可以了)

坑:简历上写一大堆牛B的技术,显得自己很厉害

建议:技术点宁可少写,也别多写。面试官经常都很忙,没时间精心准备对你的面试,甚至有时候是一边神游一边在提问,所以很可能从你简历里随便挑几个你写上的技术来问你。因此简历上写到的技术,都很可能被问到。

(本条建议与上一个“2-3门非标准课程”并不冲突)

3.项目

坑:项目名叫“Xxx电商项目”、“Xxx管理系统”,这些“项目”简直就是培训机构的标配,缺乏真实项目的感觉

建议:

(1)提前准备好回答“项目”的剧本。

“你做过什么样的项目?”或者根据你简历中的项目来提问,几乎是技术面试官必须做、并且非常喜欢做的事。所以,如果你没有充足的项目经验,就提前准备好台词吧。

(2)关于项目,经常会被问到的点是:某个技术本身的不足,以及如何弥补。因为这样问,能够检验你是否真的做过这个“项目”,至少能说明你是否深入思考过。举例如下:

a.你项目中用到了Mysql :如果数据超过的Mysql的容量怎么处理?(弥补MySQL自身的不足)

b.你做的这个项目是高并发吧?缓存用了吗?在哪些场景 你见过缓存失效?怎么解决?(还是在问你缓存自身的问题如何解决)

c.看你的项目用到了MQ?MQ可以用来解耦合,具体讲讲你项目中到底哪些场景用到了解耦合?(在考你的项目是真的,还是假的)

(3)项目的重难点。

每个项目都有自己的重难点,这些重难点也就是必问点,

举例如下:

a.分布式项目:如何共享数据?什么是CAP原则?分布式锁、分布式事务、分布式缓存怎么实现?

b.高并发项目:几级缓存,如何限流,如何熔断,用docker了没?

(4)真实性:实际的使用场景

a.简历上写的“用到了人脸识别技术” :哪些场景用到了?人脸识别是自己公司写的,还是调用的三方API?自己写的话,用的什么算法?调用API的话,每次调用需要付费多少钱?识别时的光线强度有什么要求?

b.多线程、设计模式、算法:用来处理什么业务?场景?

c.大数据的项目:数据从哪来的?d.项目能否访问?

(5)描述方式:技术列表 + 文字 (如果绘图功底不错,可以加上架构图)

项目周期:半年以上

简历上的项目个数:3个以内(如果是才毕业3年以内,写1-2个就可以了)

4.表达沟通能力

二、加分项

1.高并发/分布式/调优

a.多线程(juc、aqs、线程安全、锁机制、生产消费者、线程依赖问题)

b.数据处理SQL优化 , 常见高性能数据库架构(如mysql+mycat+haproxy+keepalived)

c.JVM调优

2.实际的解决问题能力

这点需要自己在面试时主动将话题引入。

例如在回答项目时,主动说一下你在做项目时遇到过什么问题。具体是如何发现、排查、分析、解决问题的。

3.绝杀

ACM竞赛、蓝桥杯等全国性竞赛(学生专享)

有过书籍、论文等出版物在github发布过项目(star很多)

博客、微信公众号公众号、 个人在阿里云等部署的可访问项目(这一条大部分人都能做到)。如果是电子简历,附上链接地址;如果是纸质简历,将链接封装在二维码里。

研究过JDK/spring/mybatis等源码

三、注意/建议事项

1.在描述时,多使用“数字”:几个项目、几篇博客 、排名第几

2.工资:不要写面议 ,至少给个薪资范围,如1.5w - 2.0w3.简历:1-2页(每一页写满,尽量不要空半页),不要包书皮,

格式使用PDF(不要wps或word,可能出现兼容问题),

外观简洁大方即可,不要太过绚丽

4.细节:毕业时间、年龄、工作履历、期望薪资等要相互匹配。例如,不要“毕业5年”,但“工作履历加起来只有3年”。

5.沟通:注意人文素养 ,不要抱怨问题, 要体现解决问题、愿意承担责任的态度建议:个人解决问题的能力、团队感、沟通能力

--- 完 ---

【热文推荐】

答疑 | synchronized有指令重排序的功能吗?

10行代码2道题,全答对的你月薪多少了?

1行代码实现高性能单例模式一道JVM面试题,答错率超90%

答疑 | synchronized有指令重排序的功能吗?

Ajax - 使用Ajax传递Json数据

猜你喜欢

转载自blog.csdn.net/yanqun007/article/details/103330513