两年Java开发⼯作经验⾯试总结
的⼼得总结
最近换了个公司,从⼆⽉底开始⾯,⾯到三⽉底,⾯了有快⼆⼗五家公司。我是⼀个喜欢总结经验的⼈,每经过⼀场⾯试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是⾃⼰之前没遇到过的,或者是哪个知识点今天⼜问了等等。三⽉中旬的时候,我就在构思要写⼀篇⾯经,主要是想着可能对那些跟我相同处境的⼈有点帮助,再者就是稍微记录下这为期⼀个⽉的⾯试过程。
个⼈介绍:
⾸先介绍下我⾯试时的⾃⾝条件情况,我把⾃⼰的情况分为优势和劣势来说可能更有利于你们⽐较⾃⾝情况。
java重写和重载的区别劣势:
1.16年7⽉毕业后开始到南京⼯作,⾯试的时候是18年2⽉到3⽉,⼀年多的经验,勉强算两年经验。分析:⼀年多经验我认为是⽐较尴尬的,处于⼀个不上不下的位置,很多公司⽐较喜欢招三年经验的,或者直接招应届⽣来培养。
2.毕业于⼀个⼤专的学院(期间还到过培训机构培训了⼀段时间)。分析:这个相对有⼀定的影响,因为有⼯作经验后,公司对学校的要求基本是本科以上(包含本科),除⾮达到是本科就基本没问题,但是还是有个别叼⽑公司只要985/211。
优势:
1.在⼀家中等的公司⼲过快两年,期间参与过五个⽐较⼤的项⽬,三个⾃研,两个外包,从需求分析的调研和编写开发⽂档都全程参与,分配编写的模块也是有难有易,基本的⼀些常⽤框架⾃⼰都去⽤过,数据库的MYSQL,ORACLE都使⽤过,基础还算牢靠(主要是⾃⼰平时会看⼀下基础教程,了解原理),愿意⾃⼰主动去学习(这点很重要,⼤家都是平凡⼈,公司不是看你的技术⽜不⽜,⽽是看你的学习能⼒强不强,除⾮是你⾯试的是很⾼级的职务或者⼤⼚)
2.良好的沟通交流能⼒。分析:这个能⼒不会是关键性的,但是可以加分。
3.较强的学习能⼒和逻辑思维能⼒。分析:有些公司和⾯试官还是⽐较看重⼀个⼈的学习能⼒的,经验代表着你现在在什么级别,⽽学习能⼒则代表着你将来能到达什么级别。
学习过程:
看了我的优劣势介绍,你会发现我的优势相对于我的劣势来说,有可圈可点之处,但是还是有很多的
不⾜。我⾃⼰对此也有清晰的认识,因此从过完年之后,我就开始抓紧空闲时间学习。学习的过程如下:
1.看⾯试题
正常⼈第⼀步肯定都会看⾯试题,我也不例外,在看的过程中,我发现有些⽂章写的不错,对我帮助不⼩值得推荐,如下:
很多基础的东西,建议先看。
2.深⼊学习
在看⾯试题的过程,你会遇到⼀些⾃⼰没接触过的或者以前没深⼊学习过的知识,例如最常问的HashMap内部实现原理,这就促使你得开始去看jdk的源码或者是学习⼀些新的东西。看源码是很重要的⼀步,起步很难,但是会让你收益良多,看源码的过程如果碰到⽆法理解的地⽅,可以百度看下别⼈的理解。我学习源码的过程中,看过⼏个⼈的关于源码的⽂章写的很不错,如下:
3.熟悉项⽬
出⾃⼰⼯作以来开发过的最叼的功能,将整个功能的流程和涉及的东西吃透。项⽬是⾯试中必问的
环节,⼀般是以⼀个功能点为基础展开问,因此你必须对这个功能有很深的认识,不能有模糊的地⽅。如果有时间,能把涉及到的知识点也搞懂最好。
4.做⾯试题
有不少公司是有⾯试的,如果你没有准备过,很容易在各种⼩地⽅犯错,建议去⼀些⾯试题⽹站多做些题⽬,我⾃⼰是⽤的⽜客⽹。
5.学习记录
把⾃⼰每天的学习时间和学习内容记录下来,可以让⾃⼰更有动⼒的学习,学习是⼀个枯燥的过程,你必须让⾃⼰时刻保持有动⼒。
投简历、约⾯试环节
1.在哪些⽹站投?(多⽤⼀些投递简历的⽹站,东边不亮西边亮,会有更多的⾯试机会)
拉勾⽹、BOSS直聘、猎聘⽹,智联招聘。
2.是否该海投?
投简历分为两个情况。
1)没有社招⾯试经验:建议采取海投的⽅式,只要职位要求跟⾃⼰⽐较匹配都可以投,累计⾯试经验。这个环节可以把投简历的⽹站增加两家:智联和⽆忧。
2)⾃认为社招⾯试经验已经⾜够:投那些职位匹配、公司满意的职位。公司评价可以去看准⽹、百度、知乎等查询。
3.⼀天约⼏家⾯试合适?
最理想的情况为2家⾯试,上午⼀般在10点左右,下午⼀般在2点左右。建议把理想的公司放下午,因为下午的时间⽐较充⾜,可以让公司更充分的了解你。我开始⾯的时候,每次都是上午⾯的不好,下午⾯的不错。
4.投简历经常没下⽂?
我当初也没想到简历筛选这关有这么难,可能是我的简历确实亮点不多,再者HR很多都不是⾏内⼈,因此他们看得最直接的就是你上家的公司和你毕业的学校,如果你不是从⽜逼的公司/学校出来,可能会碰到和我⼀样的情况,应对的办法就是多投。
5.是否该裸辞?
我⼀开始是边上班边投,然后利⽤调休时间,或者请假去⾯试。后来,⾯试机会越来越多,请假太频繁了,⾃⼰都不好意思了,并且⾃⼰也已经有⾜够的信⼼,这个时候我选择了裸辞。裸辞还有⼀个原因是,在⾯试过程中你会发现,有的公司要⼈要的紧,如果你的辞职流程过长可能会导致你错过这个公司。
6.注意事项
1)⾯试前⼀天把路线和时间算好,最好别迟到。
2)背个书包,带好简历、充电宝、纸⼱、⾬伞。
⾯试环节
1.笔试常见的问题?
⾯试常见的问题上⾯给的⾯试题链接基本都有。我只提⼏点:1)写SQL:写SQL很常考察group by、内连接和外连接。2)⼿写代码:⼿写代码⼀般考单例、排序、线程、消费者⽣产者。我建议排序算法除了冒泡排序,最好还能⼿写⼀种其他的排序代码。试想:如果⼀般⾯试者都写的冒泡排序,⽽你写的是快速排序/堆排序,肯定能给⾯试官留下不错的印象。
2.⾯试流程?
1)让你⾃我介绍
2)问Java基础知识
3)问项⽬
4)情景问题,例如:
你的⼀个功能上了⽣产环境后,服务器压⼒骤增,该怎么排查。
⽐如你做电商秒杀活动场景下,如何在⾼并发的情况下, 避免出现负库存的情况,我的回答是⽤消息队列的中间件,你如              果有什么好的处理⽅式也可以说
我需要向不同的客户发送消息,怎么去保证消息的准确性和延时性(消息队列处理)
5)你有什么想问⾯试官的
3.⾯试常问的知识点?
1)集合相关问题(必问):
HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现。
HashMap和Hashtable的区别。
ArrayList、LinkedList、Vector的区别。
HashMap和ConcurrentHashMap的区别。
HashMap和LinkedHashMap的区别。
HashMap是线程安全的吗。
ConcurrentHashMap是怎么实现线程安全的。
2)线程相关问题(必问):
创建线程的3种⽅式。
什么是线程安全。
Runnable接⼝和Callable接⼝的区别。
wait⽅法和sleep⽅法的区别。
synchronized、Lock、ReentrantLock、ReadWriteLock。
介绍下CAS(⽆锁技术)。
什么是ThreadLocal。
创建线程池的4种⽅式。
ThreadPoolExecutor的内部⼯作原理。
分布式环境下,怎么保证线程安全。
3)JVM相关问题:
介绍下垃圾收集机制(在什么时候,对什么,做了什么)。
垃圾收集有哪些算法,各⾃的特点。
类加载的过程。 双亲委派模型。
有哪些类加载器。
能不能⾃⼰写⼀个类叫java.lang.String。
4)设计模式相关问题(必问):
先问你熟悉哪些设计模式,然后再具体问你某个设计模式具体实现和相关扩展问题。
5)数据库相关问题,针对Mysql(必问):
给题⽬让你⼿写SQL。
有没有SQL优化经验。
Mysql索引的数据结构。
SQL怎么进⾏优化。
SQL关键字的执⾏顺序。
有哪⼏种索引。
什么时候该(不该)建索引。
Explain包含哪些列。
Explain的Type列有哪⼏种值。
6)框架相关问题:
Hibernate和Mybatis的区别。
Spring MVC和Struts2的区别。
微服务之间是如何独⽴通信的
什么是服务熔断,什么是服务降级
Spring⽤了哪些设计模式。
Spring中AOP主要⽤来做什么。
Spring注⼊bean的⽅式。
什么是IOC,什么是依赖注⼊。
Spring是单例还是多例,怎么修改。
Spring事务隔离级别和传播性。
介绍下Mybatis/Hibernate的缓存机制。
Mybatis的mapper⽂件中#和$的区别。
Mybatis的mapper⽂件中resultType和resultMap的区别。
Mybatis中DAO层接⼝没有写实现类,Mapper中的⽅法和DAO接⼝⽅法是怎么绑定到⼀起的,其内部是怎么实现的。7)其他遇到问题:
介绍下栈和队列。
IO和NIO的区别。
接⼝和抽象类的区别。
int和Integer的⾃动拆箱/装箱相关问题。 常量池相关问题。
==和equals的区别。
重载和重写的区别。
String和StringBuilder、StringBuffer的区别。
静态变量、实例变量、局部变量线程安全吗,为什么。 try、catch、finally都有return语句时执⾏哪个。
介绍下B树、⼆叉树。
ajax的4个字母分别是什么意思。
xml全称是什么。
分布式锁的实现。
分布式session存储解决⽅案。
常⽤的linux命令。
谈谈TCP/IP的⼯作原理,能实现基本的⽹络编程
你是否了解⽹络安全机制
Java8的新特性
说说Java开发常⽤的⼀些注解
⽀付完成以后返回的信息是什么形式的,xml格式的
⼀些经验:
1.先投⼀些普通公司,等⾯出了⼼得再去投理想的公司。
2.不熟悉的技术不要主动提。
3.对于那种实习期6个⽉还打8折的公司,除⾮你没有其他选择了,否则不要去。
4.⼩公司喜欢在薪⽔上压你,开的时候适当提⾼。
5.不要去参加招聘会,纯粹是浪费时间。
6.把⾯试当作⼀次技术的交流,不要太在意是否能被录取。
7.公司⼀般⾯完就决定是否录取了,让你回去等消息这种情况⼀般没戏,⽆论你⾃⼰觉得⾯的有多好。
8.尽量少通过电话⾯试,效果不好。
9.在⾯试的⽇⼦⾥,要保持每天学习,⽆论是学习新东西还是复习旧东西。
10.拿到offer了,问问⾃⼰这个公司让⾃⼰100%满意了吗,如果不是,请继续努⼒更好的。
11.通过⾯试官可以⼤概判断这家公司的情况。
12.拉勾投的简历很多会被筛掉,但是拉勾还是⾯试机会的最主要来源。
13.理想的公司可以多投⼏次,我有好⼏次都是第⼀次投被筛掉,多投⼏次就过的经验。
每⼀个你不满意的当下,都有⼀个你不曾努⼒的过去
最后送给⼤家的⼀句话,⾯试完以后⼀定要去总结你不会的问题,去⽹上它的答案,否则你是不会有进步的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。