开篇词|以面试题为切入点,有效提升你的Java内功

Java是一门历史悠久的编程语言,可以毫无争议地说,Java是最主流的编程语言之一。全球有1200万以上Java程序员以及海量的设备,还有无所不能的Java生态圈。

我所知道的诸如阿里巴巴、京东、百度、腾讯、美团、去哪儿等互联网公司,基本都是以Java为首要编程语言的。即使在最新的云计算领域,Java仍然是AWS、Google App Engine等平台上,使用最多的编程语言;甚至是微软Azure云上,Java也以微弱劣势排在前三位。所以,在这些大公司的面试中,基本都会以Java为切入点,考评一个面试者的技术能力。

应聘初级、中级Java工程师,通常只要求扎实的Java和计算机科学基础,掌握主流开源框架的使用;Java高级工程师或者技术专家,则往往全面考察Java IO/NIO、并发、虚拟机等,不仅仅是了解,更要求对底层源代码层面的掌握,并对分布式、安全、性能等领域能力有进一步的要求

我在Oracle已经工作了近7年,负责过北京Java核心类库、国际化、分发服务等技术团队的组建,面试过从初级到非常资深的Java开发工程师。由于Java组工作任务的特点,我非常注重面试者的计算机科学基础和编程语言的理解深度,我甚至不要求面试者非要精通Java,如果对C/C++等其他语言能够掌握得非常系统和深入,也是符合需求的。

工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因:

前人已经掉过的坑,后来的同学就别再“前仆后继”了!

起初,极客时间邀请我写《Java核心技术36讲》专栏,我一开始心里是怀疑其形式和必要性的。经典的书籍一大堆呀,网上也能搜到所谓的“面试宝典”呀,为什么还需要我“指手画脚”?

但随着深入交流,我逐渐被说服了。我发现很多面试者其实是很努力的,只是

我在极客时间推出这个专栏,就是为了让更多没有经验或者经验有限的开发者,在准备面试时:

Java面试题目千奇百怪,有的面试官甚至会以黑魔法一样的态度,刨根问底JVM底层,似乎不深挖JVM源代码、不谈谈计算机指令,就是不爱学习,这是仁者见仁智者见智的事儿。我会根据自己的经验,围绕Java开发技术的方方面面,精选出5大模块,共36道题目,给出典型的回答,并层层深入剖析。

5大模块分为:

这几年我从业务系统或产品开发,切换到Java平台自身,接触了更多Java领域的核心技术,我相信我的分享能够提供一些独到的内容,而不是简单的人云亦云。

时移世易,很多大家耳熟能知的问题,其实在现代Java里已经发生了根本性的改变。在技术领域,即使你打算或已经转为技术管理等,扎实的技术功底也是必须的。希望通过我的专栏,不仅可以让你面试成功,还能帮助你未来职业发展更进一步。

万丈高楼平地起,愿我这个Java老兵,能与你一道,逐个击破大厂Java面试考点,直击Java技术核心要点,构建你的Java知识体系。