Java开发面试指南系列-备战准备

本篇文章讲在面试之前需要做的一些必要准备,以及一些面试小技巧等

一、如何准备面试

首先无论是校招还是社招都避免不了各种各样的面试、笔试等等,如何去准备这些东西就显得格外重要。如果我们只是在面试前去死记硬背然后刷刷题这样,其实在稍微有一点经验的面试官前面是根本没有用的,相信有不少同学会有这样的体会,建议大家还是一步一个脚印踏踏实实的走。

二、自我介绍

自我介绍一般是你和面试官的第一个正式交流,一次优秀的自我介绍会给面试官留下一个好印象;其实可以换位思考一下,假如你自己是面试官,你会想听到面试人怎么介绍自己?一定不是很客套的说说自己喜欢编程,然后平时花了很多时间来学习什么什么技术等等,再讲一下自己的兴趣爱好是打球听歌之类的。

我觉得一个比较好的自我介绍应该包括这几点:

  1. 用简单的话把自己主要擅长的技术栈讲清楚;
  2. 着重强调自己在项目开发中负责哪些业务,其中使用了什么技术,有遇到什么困难最后是怎么解决的等;
  3. 可以重点突出自己的能力,比如自己在数据库调优方面以及定位Bug的能力特别厉害;

接下来举两个例子,从社招和校招两个角度。大家要记住自我介绍不需要死记硬背,自己要清楚自己要说的点,对自己擅长的技术着重强调,面试时候跟据公司的情况临场发挥也是可以的。另外也可以准备好两份自我介绍,其中一份是对hr说的,主要是讲自己的经历和对公司的贡献等,技术方面的就可以一笔带过;而另一份就是对技术面试官讲的,可以主要讲讲自己会的技术和项目经验细节等。

社招:

⾯试官,您好!我叫秀⼉。我⽬前有2年半的⼯作经验,熟练使⽤Spring、MyBatis等框架、了解Java 底层原理⽐如JVM调优并且有着丰富的分布式开发经验。离开上⼀家公司是因为我想在技术上得到更多的锻炼。在上⼀个公司我参与了⼀个分布式电⼦交易系统的开发,负责搭建了整个项⽬的基础架构并且通过分库分表解决了原始数据库以及⼀些相关表过于庞⼤的问题,⽬前这个⽹站最⾼⽀持10万⼈同时访问。⼯作之余,我利⽤⾃⼰的业余时间写了⼀个简单的 RPC 框架,这个框架⽤到了Netty进⾏⽹络通信, ⽬前我已经将这个项⽬开源,在Github上收获了2k的Star! 说到业余爱好的话,我比较喜欢通过博客整理分享⾃⼰所学知识,现在已经是多个博客平台的认证作者。⽣活中我是⼀个⽐较积极乐观的⼈,⼀般会通过运动打球的⽅式来放松。我⼀直都⾮常想加⼊贵公司,我觉得贵公司的⽂化和技术氛围我都⾮常喜欢,期待能与你共事!

 

校招:

⾯试官,您好!我叫秀⼉。⼤学时间我主要利⽤课外时间学习了Java以及Spring、MyBatis等框架 。在校期间参与过⼀个考试系统的开发,这个系统的主要⽤了 Spring、MyBatis 和 shiro 这三种框架。我在其中主要担任后端开发,主要负责了权限管理功能模块的搭建。另外,我在⼤学的时候参加过⼀次软件编程⼤赛,我和我的团队做的在线订餐系统成功获得了第⼆名的成绩。我还利⽤⾃⼰的业余时间写了⼀个简单的 RPC 框架,这个框架⽤到了Netty进⾏⽹络通信, ⽬前我已经将这个项⽬开源,在Github上收获了2k的 Star! 说到业余爱好的话,我比较喜欢通过博客整理分享⾃⼰所学知识,现在已经是多个博客平台的认证作者。 ⽣活中我是⼀个⽐较积极乐观的⼈,⼀般会通过运动打球的⽅式来放松。我⼀直都⾮常想加⼊贵公司,我觉得贵公司的⽂化和技术氛围我都⾮常喜欢,期待能与你共事!

三、搞清楚技术面试可能会问哪些方面的问题

这个没什么说的,你自己去面试,简历上写了哪些技术,你自己对这些技术肯定要有一定的理解和应用经验,对不清楚的技术一定不要往上写,我直接用思维导图的方式先大概说一下需要会的知识点,大家可以对照看一下,有缺少的可以根据自身情况去补充。

2023122507330523

这上面思维导图涉及到可能会问到的技术点,你不需要把每一个都搞的很熟练,要分清楚主次,对于你来说不了解的技术不要写在简历上,对于自己了解不深的技术,不要说熟练掌握,只要把自己擅长的技术完整展示给面试官即可,有的公司就是看重你一个技术点,你把这个技术点讲的很清楚明白或许就会收到offer。

四、其它小的细节事项

1.休闲着装

穿⻄装、打领带、⼩⽪鞋?NO!NO!NO!这是互联⽹公司⾯试⼜不是去⾛红毯,所以你只需要穿的简单⼤⽅就好,不需要太正式。

2.随身带上⾃⼰的成绩单和简历

校招的话,有的公司在⾯试前都会让你交⼀份成绩单和简历当做⾯试中的参考。

3.如果需要笔试就提前刷⼀些笔试题

平时空闲时间多的可以刷⼀下笔试题⽬(⽜客⽹上有很多)。但是不要只刷⾯试题,不动⼿code,程序员不是为了考试⽽存在的。

4.花时间看⼀些逻辑题

⾯试中发现有些公司都有逻辑题测试环节,并且都把逻辑笔试成绩作为很重要的⼀个参考。

5.准备好⾃⼰的项⽬介绍

如果有项⽬的话,技术⾯试第⼀步,⾯试官⼀般都是让你⾃⼰介绍⼀下你的项⽬。你可以从下⾯⼏个⽅向来考虑:

  • 对项⽬整体设计的⼀个感受(⾯试官可能会让你画系统的架构图)
  • 在这个项⽬中你负责了什么、做了什么、担任了什么⻆⾊
  • 从这个项⽬中你学会了那些东⻄,使⽤到了那些技术,学会了那些新技术的使⽤
  • 另外项⽬描述中,最好可以体现⾃⼰的综合素质,⽐如你是如何协调项⽬组成员协同开发的或者
  • 在遇到某⼀个棘⼿的问题的时候你是如何解决的,⼜或者说你在这个项⽬⽤了什么技术实现了什么功能
  • ⽐如:⽤redis做缓存提⾼访问速度和并发量、使⽤消息队列削峰和降流等等

2023122508240281

6.提前准备技术⾯试

搞清楚⾃⼰⾯试中可能涉及哪些知识点、哪些知识点是重点。⾯试中哪些问题会被经常问到、⾃⼰该如何回答。(如果你对这个技术一点都不了解的话,强烈不推荐背题,第⼀:通过背这种⽅式你能记住多少?能记住多久?第⼆:背题的⽅式的学习很难坚持下去!) 最好是在理解的基础上刷刷题,可以结合实际项目案例中的应用去讲解。

7.⾯试之前做好定向复习

所谓定向复习就是专⻔针对你要⾯试的公司来复习。⽐如你在⾯试之前可以在⽹上找找有没有你要⾯试的公司的⾯经。

举个例子:在我⾯试 ThoughtWorks 的前⼏天我就在⽹上找了⼀些关于 ThoughtWorks 的技术⾯的⼀些⽂章。然后知道了 ThoughtWorks 的技术⾯会让我们在之前做的作业的基础上增加⼀个或两个功能,所以我提前⼀天就把我之前做的程序重新重构了⼀下。然后在技术⾯的时候,简单的改了⼏⾏代码之后写个测试就完事了。如果没有提前准备,我觉得 20 分钟我很⼤⼏率会完不成这项任务。

8.⾯试之后记得复盘

面试结束后记得要总结一下面试中表现不足的地方,比如在讲解数据库分库分表时候没有讲的很细致,知识点有遗忘等等,表现比较好的地方也要记录下来为下次更好发挥做准备。

如果失败,不要灰⼼;如果通过,切勿狂喜。⾯试和⼯作实际上是两回事,可能很多⾯试未通过的⼈,⼯作能⼒⽐你强的多,反之亦然。我个⼈觉得⾯试也像是⼀场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为⾯试失败⽽灰⼼、丧失⽃志。也不要因为⾯试通过⽽沾沾⾃喜,等待你的将是更美好的未来,继续加油!

9.为什么说简历很重要?

⼀份好的简历可以在整个申请⾯试以及⾯试过程中起到⾮常好的作⽤。 在不夸⼤⾃⼰能⼒的情况下,写出⼀份好的简历也是⼀项很棒的能⼒。为什么说简历很重要呢

先从⾯试前来说:

  • 假如你是⽹申,你的简历必然会经过HR的筛选,⼀张简历HR可能也就花费10秒钟看⼀下,然后HR就会决定你这⼀关是Fail还是Pass。
  • 假如你是内推,如果你的简历没有什么优势的话,就算是内推你的⼈再⽤⼼,也⽆能为⼒。

另外,就算你通过了筛选,后⾯的⾯试中,⾯试官也会根据你的简历来判断你究竟是否值得他花费很多时间去⾯试。所以,简历就像是我们的⼀个⻔⾯⼀样,它在很⼤程度上决定了你能否进⼊到下⼀轮的⾯试中。

再从⾯试中来说:

我发现⼤家比较喜欢看⾯经 ,这点⽆可厚⾮,但是⼤部分⾯经都没告诉你很多问题都是在特定条件下才问的。举个简单的例⼦:⼀般情况下你的简历上注明你会的东⻄才会被问到(Java、数据结构、⽹络、算法这些基础是每个⼈必问的),⽐如写了你会 redis,那⾯试官就很⼤概率会问你 redis 的⼀些问题。⽐如:redis的常⻅数据类型及应⽤场景、redis是单线程为什么还这么快、 redis 和memcached 的区别、redis 内存淘汰机制等等。

所以,⾸先,你要明确的⼀点是:你不会的东⻄就不要写在简历上。另外,你要考虑你该如何才能让你的亮点在简历中凸显出来,⽐如:你在某某项⽬做了什么事情解决了什么问题(只要有项⽬就⼀定有要解决的问题)、你的某⼀个项⽬⾥使⽤了什么技术后整体性能和并发量提升了很多等等。

⾯试和⼯作是两回事,聪明的⼈会把⾯试官往⾃⼰擅⻓的领域领,其他⼈则被⾯试官牵着⿐⼦⾛。虽说⾯试和⼯作是两回事,但是你要想要获得⾃⼰满意的 offer ,你⾃身的实⼒必须要强。

2023122508261527

10.项⽬经历怎么写?

简历上有⼀两个项⽬经历很正常,但是真正能把项⽬经历很好的展示给⾯试官的⾮常少。对于项⽬经历⼤家可以考虑从如下⼏点来写:

  1. 对项⽬整体设计的⼀个感受
  2. 在这个项⽬中你负责了什么、做了什么、担任了什么⻆⾊
  3. 从这个项⽬中你学会了那些东⻄,使⽤到了那些技术,学会了那些新技术的使⽤
  4. 另外项⽬描述中,最好可以体现⾃⼰的综合素质,⽐如你是如何协调项⽬组成员协同开发的或者
  5. 在遇到某⼀个棘⼿的问题的时候你是如何解决的⼜或者说你在这个项⽬⽤了什么技术实现了什么功能

11.专业技能该怎么写?

先问⼀下你⾃⼰会什么,然后看看你意向的公司需要什么。⼀般HR可能并不太懂技术,所以他在筛选简历的时候可能就盯着你专业技能的关键词来看。对于公司有要求⽽你不会的技能,你可以花⼏天时间学习⼀下,然后在简历上可以写上⾃⼰了解这个技能。⽐如你可以这样写(下⾯这部分内容摘⾃我的简历,⼤家可以根据⾃⼰的情况做⼀些修改和完善)

  • 计算机⽹络、数据结构、算法、操作系统等课内基础知识:掌握
  • Java 基础知识:掌握
  • JVM 虚拟机(Java内存区域、虚拟机垃圾算法、虚拟垃圾收集器、JVM内存管理):掌握
  • ⾼并发、⾼可⽤、⾼性能系统开发:掌握
  • Struts2、Spring、Hibernate、Ajax、Mybatis、JQuery :掌握
  • SSH 整合、SSM 整合、 SOA 架构:掌握
  • Dubbo: 掌握
  • Zookeeper: 掌握
  • 常⻅消息队列: 掌握
  • Linux:掌握
  • MySQL常⻅优化⼿段:掌握
  • Spring Boot +Spring Cloud +Docker:了解
  • Hadoop ⽣态相关技术中的 HDFS、Storm、MapReduce、Hive、Hbase :了解
  • Python 基础、⼀些常⻅第三⽅库⽐如OpenCV、wxpy、wordcloud、matplotlib:熟悉

2023122508242635

12.排版注意事项

  1. 尽量简洁,不要太花⾥胡哨;
  2. ⼀些技术名词不要弄错了⼤⼩写⽐如MySQL不要写成mysql,Java不要写成java。这个在我看来还是比较忌讳的,所以⼀定要注意这个细节;
  3. 中⽂和数字英⽂之间加上空格的话看起来会舒服⼀点;

13.其他的⼀些⼩Tips

  • 尽量避免主观表述,少⼀点语义模糊的形容词,尽量要简洁明了,逻辑结构清晰。
  • 如果⾃⼰有博客或者个⼈技术栈点的话,写上去会为你加分很多。
  • 如果⾃⼰的Github比较活跃的话,写上去也会为你加分很多。
  • 注意简历真实性,⼀定不要写⾃⼰不会的东⻄,或者带有欺骗性的内容
  • 项⽬经历建议以时间倒序排序,另外项⽬经历不在于多,⽽在于有亮点。
  • 如果内容过多的话,不需要⾮把内容压缩到⼀⻚,保持排版⼲净整洁就可以了。
  • 简历最后最好能加上:“感谢您花时间阅读我的简历,期待能有机会和您共事。”这句话,显的你会很有礼貌。

14.⼤部分程序员在⾯试前很关⼼的⼀些问题

身边的朋友或者公众号的粉丝很多⼈都向我询问过:“我是双⾮/三本/专科学校的,我有机会进⼊⼤⼚吗?”、“⾮计算机专业的学⽣能学好吗?”、“如何学习Java?”、“Java学习该学那些东⻄?”、“我该如何准备Java⾯试?”……这些⽅⾯的问题。我会根据⾃⼰的⼀点经验对⼤部分⼈关⼼的这些问题进⾏答疑解惑:

希望这篇可以给已经在Java⽅向⾛了⼏年的朋友或者正在准备往Java后端⽅向发展的朋友们⼀点帮助。道理懂了如果没有实际⾏动,那这篇⽂章对你或许没有任何意义。

如果觉得内容不错的话,可以分享给到朋友圈让你的朋友看到,感谢!

15.我是双⾮/三本/专科学校的,我有机会进⼊⼤⼚吗?

我⾃⼰也是⾮985⾮211学校的,结合⾃⼰的经历以及⼀些朋友的经历,我觉得让我回答这个问题再好不过。

⾸先,我觉得学校歧视很正常,真的太正常了,如果要抱怨的话,你只能抱怨⾃⼰没有进⼊名校。但是,千万不要动不动说⾃⼰学校差,动不动拿⾃⼰学校当做⾃⼰进不了⼤⼚的借⼝,学历只是筛选简历的很多标准中的⼀个⽽已,如果你够优秀,简历够丰富,你也⼀样可以和名校同学⼀起同台竞争。

企业HR肯定是更喜欢⾼学历的⼈,毕竟985,211优秀⼈才⽐例肯定⽐普通学校⾼很多,HR团队肯定会优先在这些学校⾥选。这就好⽐相亲,你是愿意在很多优秀的⼈中选⼀个优秀的,还是愿意在很多普通的⼈中选⼀个优秀的呢?双⾮本科甚⾄是⼆本、三本甚⾄是专科的同学也有很多进⼊⼤⼚的,不过⽐率相⽐于名校的低很多⽽已。从⼤⼚招聘的结果上看,⾼学历⼈才的数量占据⼤头,那些成功进⼊BAT、美团,京东,⽹易等⼤⼚的双⾮本科甚⾄是⼆本、三本甚⾄是专科的同学往往是因为具备丰富的项⽬经历或者在某个含⾦量⽐᫾⾼的竞赛⽐如ACM中取得了不错的成绩。⼀部分学历不突出但能⼒出众的⾯试者能够进⼊⼤⼚并不是说明学历不重要,⽽是学历的软肋能够通过其他的优势来弥补。 所以,如果你的学校不够好⽽你⾃⼰⼜想去⼤⼚的话,建议你可以从这⼏点来做:

  1. 尽量在⾯试前最好有⼀个可以拿的出⼿的项⽬;
  2. 有实习条件的话,尽早出去实习,实习经历也会是你的简历的⼀个亮点(有能⼒在⼤⼚实习最佳!);
  3. 参加⼀些含⾦量⽐较⾼的⽐赛,拿不拿得到名次没关系,重在锻炼。

16.⾮计算机专业的学⽣能学好Java后端吗?我能进⼤⼚吗?

当然可以!现在⾮科班的程序员很多,很⼤⼀部分原因是互联⽹⾏业的⼯资⽐᫾⾼。我们学校外⾯的培训班⾥⾯90%都是⾮科班,我觉得他们很多⼈学的都还不错。另外,我的⼀个朋友本科是机械专业,⼤⼀开始⾃学安卓,技术贼溜,在我看来他⽐⼤部分本科是计算机的同学学的还要好。参考Question1的回答,即使你是⾮科班程序员,如果你想进⼊⼤⼚的话,你也可以通过⾃⼰的其他优势来弥补。

我觉得我们不应该因为⾃⼰的专业给⾃⼰划界限或者贴标签,说实话,很多科班的同学可能并不如你,你以为科班的同学就会认真听讲吗?还不是⼏乎全靠⾃⼰下⾃学!不过如果你是⾮科班的话,你想要学好,那么注定就要舍弃⾃⼰本专业的⼀些学习时间,这是⽆可厚⾮的。

建议⾮科班的同学,⾸先要打好计算机基础知识基础:①计算机⽹络、②操作系统、③数据结构与算法,我个⼈觉得这3个对你最重要。这些东⻄就像是内功,对你以后的⻓远发展⾮常有⽤。当然,如果你想要进⼤⼚的话,这些知识也是⼀定会被问到的。另外,“⼀定学好数据结构与算法!⼀定学好数据结构与算法!⼀定学好数据结构与算法!”,重要的东⻄说3遍。

2023122508264177

17.我没有实习经历的话找⼯作是不是特别艰难?

没有实习经历没关系,只要你有拿得出⼿的项⽬或者⼤赛经历的话,你依然有可能拿到⼤⼚的 offer。笔主当时找⼯作的时候就没有实习经历以及⼤赛获奖经历,单纯就是凭借⾃⼰的项⽬经验撑起了整个⾯试。如果你既没有实习经历,⼜没有拿得出⼿的项⽬或者⼤赛经历的话,我觉得在简历关除⾮你有其他特别的亮点,不然,你应该就会被刷。

18.我该如何准备⾯试呢?⾯试的注意事项有哪些呢?

下⾯是我总结的⼀些准备⾯试的Tips以及⾯试必备的注意事项:

  1. 准备⼀份⾃⼰的⾃我介绍,⾯试的时候根据⾯试对象适当进⾏修改(突出重点,突出⾃⼰的优势在哪⾥,切忌流⽔账);
  2. 注意随身带上⾃⼰的成绩单和简历复印件; (有的公司在⾯试前都会让你交⼀份成绩单和简历当做⾯试中的参考。)
  3. 如果需要笔试就提前刷⼀些笔试题,⼤部分在线笔试的类型是选择题+编程题,有的还会有简答题。(平时空闲时间多的可以刷⼀下笔试题⽬(⽜客⽹上有很多),但是不要只刷⾯试题,不动⼿code,程序员不是为了考试⽽存在的。)另外,注意抓重点,因为题⽬太多了,但是有很多题⽬⼏乎次次遇到,像这样的题⽬⼀定要搞定。
  4. 提前准备技术⾯试。 搞清楚⾃⼰⾯试中可能涉及哪些知识点、那些知识点是重点。⾯试中哪些问题会被经常问到、⾃⼰改如何回答。(强烈不推荐背题,第⼀:通过背这种⽅式你能记住多少?能记住多久?第⼆:背题的⽅式的学习很难坚持下去!)
  5. ⾯试之前做好定向复习。 也就是专⻔针对你要⾯试的公司来复习。⽐如你在⾯试之前可以在⽹上找找有没有你要⾯试的公司的⾯经。
  6. 准备好⾃⼰的项⽬介绍。 如果有项⽬的话,技术⾯试第⼀步,⾯试官⼀般都是让你⾃⼰介绍⼀下你的项⽬。你可以从下⾯⼏个⽅向来考虑:①对项⽬整体设计的⼀个感受(⾯试官可能会让你画系统的架构图;②在这个项⽬中你负责了什么、做了什么、担任了什么⻆⾊;③ 从这个项⽬中你学会了那些东⻄,使⽤到了那些技术,学会了那些新技术的使⽤;④项⽬描述中,最好可以体现⾃⼰的综合素质,⽐如你是如何协调项⽬组成员协同开发的或者在遇到某⼀个棘⼿的问题的时候你是如何解决的⼜或者说你在这个项⽬⽤了什么技术实现了什么功能⽐如:⽤redis做缓存提⾼访问速度和并发量、使⽤消息队列削峰和降流等等。
  7. 提前知道有哪些技术问题常问: 索引、隔离界别、HashMap源码分析、SpringMVC执⾏过程等等问题我觉得⾯试中实在太常⻅了,好好准备!后⾯的⽂章会我会分类详细介绍到那些问题最常问。
  8. 提前熟悉⼀些常问的⾮技术问题: ⾯试的时候有⼀些常⻅的⾮技术问题⽐如“⾯试官问你的优点是什么,应该如何回答?”、“⾯试官问你的缺点是什么,应该如何回答?”、“如果⾯试官问”你有什么问题问我吗?”时,你该如何回答”等等,对于这些问题,如何回答⾃⼰⼼⾥要有个数,别⾯试的时候出了乱⼦。
  9. ⾯试之后记得复盘。 ⾯试遭遇失败是很正常的事情,所以善于总结⾃⼰的失败原因才是最重要的。如果失败,不要灰⼼;如果通过,切勿狂喜。

2023122508244467

作者:Hardy

链接:https://bbyycc.com/stne/4119.html

声明:如无特别声明本文即为原创文章仅代表个人观点,版权归《屿川博客》作者所有,欢迎转载,转载请保留原文链接。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年12月25日 下午2:13
下一篇 2023年12月26日 下午11:14

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部