在 Java 虚拟机上班是一种怎样的体验?

522 人赞同了该回答


邀!

JVM公司整体来说还是挺不错的,各方面条件都还不错。办公大厦有两层,一楼是native层,一堆native层的线程员工在下面办公。我在二楼的Java层,这一层都是Java线程。

我在JVM类加载部门工作,我的Leader是 ExtClassLoader
,他的Leader是公司高管 BootstrapClassLoader

我们部门的工作就是把磁盘上的.class文件加载到内存中,变成一个个可以使用的类。工作嘛还算轻松。不过有一点让我不爽的是部门的 双亲委派
制度。

每次遇到新的类需要加载,按照规定都必须请示领导来加载,领导又去请示他的领导来加载。但是高管 BootstrapClassLoader
只负责加载Java的核心类,我的领导也只负责加载一些扩展类,所以大部分时间请示完了结果他们都加载不了,还得让我去加载。
一来二去的花了不少时间在流程上,瞎耽误工夫。我多次反应这个问题,能不能不请示我直接加载算了,不过每次都被驳回,说是为了安全考虑,他们必须过目。唉,领导不肯放权也是难办!
————分割线————
评论区戾气太重!说我不懂安全也是醉了。

回答一下 @FinalizerThread
同学的问题。

确实如他所说,我们ClassLoader会去检查类有没有实现 finalize
方法,检查结果会保存在 Klass
结构中的 AccessFlags
里。
这是一个很重要的字段,记录了类的很多属性:

有了这些信息,创建对象的时候就可以检查标记来决定是否创建 Finalizer
对象了。
以上。