一个对象会被GC接着继续问你为什么要在这种时候对象才会被GC接着继续问你GC策略都有哪些分类你如果说出来了,继续问你这些策略分别都有什么优劣势都适用于什么场景你继续说出来了以后,给你举个实际的场景,让你选择一个GC策略
f你如果选出来了,继续问你,为什么要选择这个策略下面是关于类加载机制的简单连环炮。首先肯定是先问你Java的类加载器都有哪些回答了这些以后,可能会问你每个类加载器都加载哪些类说完以后,可能会问你这些类加载之间的父子关系是怎样的你在回答的时候可能会提到双亲委派模型,那么可以继续问你什么是双亲委派模型你解释完了以后,可能会继续问你,为什么Java的类加载器要使用双亲委派模型你回答完以后,可能会继续问你如何自定义自己的类加载器,自己的类加载器和Java自带的类加载器关系如何处理再来一个关于内存的连环炮。首先肯定就是问你内存分为哪几部分,这些部分分别都存储哪些数据然后继续问你一个对象从创建到销毁都是怎么在这些部分里存活和转移的接着可能会问你,内存的哪些部分会参与GC的回收完事以后,可能还会问你Java的内存模型是怎么设计的你回答了以后,还会继续问你为什么要这么设计
f问完以后,还可能会让你结合内存模型的设计谈谈volatile关键字的作用
你在谈的时候,肯定会提到可见性,那么接着可见性这三个字,还可以继续问你并发的内容。
基本上Java语言本身以及语言稍微高级点的内容就是以上部分,如果你能把以上四部分了解的非常透彻,那基本上Java这部分就没啥问题了,因为光以上的内容就够你跟面试官聊很久了。你聊这些聊得久了,自然问你其它问题的时间就会短点。
你从以上这些问题的过程也应该能感受出来,很多时候,面试官都是顺着一条线一路问下去的,如果你觉得这条线你不熟悉的话,就要及时拐弯,引导面试官去问其它方面的问题。千万不要一直往下深入,直到自己跳不出来为止,那就尴了个尬了。
2、讲述自己的项目,并在中间穿插着问题
这一部分是面试过程中必问,也是聊得最久的一个阶段。除非你前面的语言部分非常扎实,扎实到面试官问了一两个小时,依旧没有探出你对语言本身的了解到底有多深。否则的话,你一定逃不过自己的项目这一关,而且一般情况下聊得时间不会太短。
这一部分内容,一般的模式就是你自己去讲你做过的项目,然后面试官会冷不丁的让你去解释其中某一部分,比如让你解释当时为什么要这么做,或者问你现在觉得有没有更好的办法。而r