我在JVM公司的那些年(一)——奇怪的面试

来自:互联网侦察,作者:channingbreeze

小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚。


第一篇中长篇连载小说《我在JVM公司的那些年》,主要讲解JVM内部的一些原理,希望大家能够喜欢,多多支持。


郑重声明:小说人物和故事情节均是原创,未经同意禁止任何形式的转载,侵权将进入法律程序。大佬除外。

欢迎大家转发文章,谢谢!




本节知识点预告:JVM双亲委派机制。


大家好,我叫小史,是一个非科班程序员……哦,不,在这部小说中,我是一个java对象。


大家知道,我一直想去一家大公司工作,现在这个年代,放眼望去,JVM公司就是一家理想中的公司。


但是想去这家公司的人太多了,只要是搞java的,都想往里面钻。


很幸运,我拿到了一个面试机会。


奇怪的面试流程


我走进会议室,不一会儿就有一个HR小姐姐过来招呼我。


HR小姐姐:你好,我是Application ClassLoader,欢迎参加我们的招聘。


我:你好,这是我的简历。


说着,我从书包里掏出一个
com.neteye.Person.class文件递给了HR小姐姐。


HR
小姐姐:哦,是一个class文件,你等等,我得找我的主管先来看看。


说完,HR小姐姐离开了会议室,不一会儿,又过来另一个更加成熟的HR小姐姐。


HR小姐姐:你好,我是Extension ClassLoader


她拿着我的简历,说:嗯,果然是一个class文件,稍等,我得找我的主管过来看看。


说完,这位HR小姐姐也出去了,留下我在会议室一脸懵逼,这到底是干嘛?


过一会儿,又过来一个更加资深的HR小姐姐。


HR小姐姐:你好,我是Bootstrap ClassLoader


这位HR小姐姐看了一下我的简历,说:嗯,这份简历我面不了,我叫个人过来面你。


说完,她又双叒叕出去了……不一会儿,之前的Extension ClassLoader小姐姐进来了。

她看了一下简历,也说:嗯,这份简历我也面不了,我叫个人过来面你。

说完,她出去后又把Application ClassLoader叫进来。

Application ClassLoader仔细看着我的简历,嘴里还念念有词:cafebabe……


过了一会儿,她开口了:嗯,简历没问题,明天来上班吧,你有没有什么问题要问我?

我内心很惊讶,竟然一个问题没问,光靠简历就过了面试。但是表面上我却镇定无比,问了一个从一开始我就疑惑不解的问题。

我:既然最后是你来面我,干嘛还让你的主管还有主管的主管来看我的简历呢?


不堪回首的招聘事故


Application ClassLoader
和我年龄相仿,也没什么代沟,于是她和我滔滔不绝地讲起来。


你不知道啊,在公司创立不久的时候,有一次我招聘,碰到一个人,自称是java.lang.String,以前是xx公司CTO,过来面试。


我自然很高兴呀,欢欢喜喜把他招进来,想着今年的KPI可以超额完成了。


没想到下午的时候,Bootstrap ClassLoader发现了他,说,不对呀,java.lang.String在我刚创立公司的时候就招进来了,一直是公司核心员工。


于是暗中调查那个新来的java.lang.String,发现他简历造假,真实身份居然是竞争对手公司派过来的间谍。


我们赶紧把他开除了,幸好发现的早,不然后果不堪设想。


从那以后,公司就立下制度,所有进JVM公司的人,简历必须先经过Bootstrap ClassLoader审阅,她负责招聘公司的核心员工,然后再由Extension ClassLoader审阅,她负责招聘核心扩展员工,她俩都看过了,再由我Application ClassLoader来,我只招聘普通员工。


这套制度还有一个拗口的名字,叫做
parent delegation,翻译过来叫双亲委派




我心想:原来如此,这样做就可以防止有人冒充JVM公司的核心员工了。


HR
小姐姐:你跟我过来吧,我带你认识一下你的工位。


说着,HR小姐姐把我领到了一个叫做新生代的工作区。


HR
小姐姐:喏,这就是你的工位,你以后就在这上班啦。


(未完待续……)




小史成功地加入了JVM公司,又有什么奇葩的事情等着他?欲知后事如何,请听下回分解。


小结

ClassLoader的工作就是把.class文件加载进JVM。

而双亲委派模型说的就是,当一个.class文件要被加载进JVM的时候,要先经过Bootstrap ClassLoader尝试加载,再经过Extension ClassLoader尝试加载,它俩都加载不了,再由Application ClassLoader加载。


下节知识点预告:垃圾回收算法

推荐↓↓↓
Java编程
上一篇:我在JVM公司的那些年(二)——残酷的制度 下一篇:IntelliJ IDEA 从入门到上瘾教程,2019图文版!