Java面试变成八股文? 我终于知道了真相...
发布于 2021-09-04 13:51 ,所属分类:软件编程学习资料
国内的互联网面试,恐怕是现存的、最接近科举考试的制度。
国内的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算法(Coding),近几年也会加入Design轮(系统设计和面向对象设计OOD)和BQ轮(Behavioral question,行为面试问题)。
所以大多数北美工程师的面试准备是这样的:
我见过刷300题左右进Google的,也见过刷1000+题还拿不到offer的.但总的来说,只要面试中遇到的算法题,能够按自己的思路做出来,并能应对面试官的follow up,这一关基本就妥了。所以大多数人会在跳槽前刷LintCode这类的在线编程测评题库。
一般来说是分为系统设计和面向对象设计。5年以下经验的多数会考面向对象设计,和国内不同的是需要画类图;5年以上的大多考系统架构设计。参考资料:系统架构设计2021版;面向对象设计OOD,以上都可以免费试听。
报名,免费试听
即行为面试问题,常考的问题诸如“你为什么从上一家公司离职”、“你在之前的工作中做过的最有成就感的事情是什么?”等。
可以看出,北美工程师是很少“背答案”的,要么考逻辑思维能力,要么考编程能力,而不是问概念、问理论。
那么为什么国内面试不采取这样的考察方式呢?简单来说,互联网IT行业的求职者太多了,如果考察的是清一溜的算法题和设计题,那么会要求面试官有极高的技术水平,还要花大量的时间成本和精力。
所以,也许现行的八股文面试不是最优的解法,但也是最符合当前国内IT环境的做法。
话又说回来,现在的Java面试真就老八股文了。我光是整理题目就理了半天,答案背也背不完,在我快要放弃的时候,死马当活马医的听了阿里P8杨逍的讲座《大厂Java高级工程师的求职秘诀》,大佬把Java面试题和所有知识点都讲得很通透,感兴趣的话,大家也可以去免费试听一下。
报名,免费试听
先上这些Java面试真题(Java基础):
JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java 中有什么作用? java 中的 Math.round(-1.5) 等于多少? String 属于基础的数据类型吗? java 中操作字符串都有哪些类?它们之间有什么区别? String str="i"与 String str=new String("i")一样吗? 如何将字符串反转? String 类的常用方法都有那些? 抽象类必须要有抽象方法吗? 普通类和抽象类有哪些区别? 抽象类能使用 final 修饰吗? 接口和抽象类有什么区别? java 中 IO 流分为几种?
回到刚才的问题,Java的面试是需要背的,也确实是老八股文了,但这个背是有技巧的。
举个例子:
“JDK 和 JRE 有什么区别?”
这么简单的问题相信大家都会,等你答上来了面试官就会继续追问:
“除了javac你还了解些什么命令行工具,它们的用途是什么?”
很多人只答得出jcmd、jps、jinfo、jstat、jmap以及jstack等工具,但对应的用途却记不清了。答出来的也不要太得意,后面还有灵魂拷问。
“你用过jstat吗?你了解哪些参数?”
详细参数请看下表
相关资源