收到链家offer,补个面经(Java三面)。
lz是在哈尔滨做的现场笔试,10道编程题。
一面:
1. 面试官拿着笔试试卷把10个题挨个缕了一遍 ,因为题都是自己写的,所以跟面试官交流的很愉快。其中有一道题我用的API得了0分,面试官告诉我这题考的是排序,让我说了说归并排序的思路。
2. 万年不变的解释HashMap。
3. 万年不变的内存分区。
4. Java类加载的过程,这个我记不准,就直接跟面试官说我记不准,但是类加载这块知识我双亲加载模型能说的很明白,面试官说你说吧,我就blablabla讲起了双亲加载模型,包括含义、为什么、应用场景。
5. 两个不同的类加载器加载的同一个类的对象能相互通信吗?我说这根据双亲加载模型根本不可能啊。面试官说在双亲加载模型上做个隔断。我说不知道,但是我认为可以,因为在同一个程序里。说实话现在也不是很理解这个问题……
6. 然后就是我的项目的问题,遇到的难题和解决方法。
二面:
开始扯了一些轻松的话题,记不起来了,然后突然话锋一转,开始:
1. 一个不可靠的信道,有没有可能既不重,又不丢?我想了想,说不可能,又不重又不丢那他就可靠了……
2. 如果发生了丢包,怎么处理?我说加上确认机制和序列号机制,blablabla……发现丢包以后要重传。
3. 你说重传是吧,那就有可能重复了,这你怎么解决?我想了想,额,序列号机制就可以解决。
4. linux学过多少?我说用哪学哪,知道ls -l那十位都是啥,知道定时任务,守护进程。
5. ls -l那十位说说吧。我说第一位是文件和文件夹,后边是用户、用户组、其它用户的权限。
6. 等等,2-4位是什么用户?是当前用户还是所属用户?所属用户!
7. 守护进程解释一下。我解释的不好,面试官说作为一个工程师对与技术问题应该给出准确的答案,不会就说不会,不要用应该、大概这种词语。
8. 聊项目,遇到的难题和解决方法,我提到了没有解决的,破解验证码问题,因为成本太高,面试官说是啊,想要安全可以让攻击者攻击成本大于收益,让他望而却步。
9. 有什么要问他的,我问了一些链家的业务和盈利模式。
hr面:
一些很常规的问题。
总体来说是一次很好的面试体验。我觉得这份经历值得借鉴的地方是我在一面的第4个问题中的回答,把不会的问题转移到自己熟悉的问题上,我感觉这是比生硬的说一句不会要好的。另外就是少使用应该、大概这样的词语。
#Java工程师#