JVM基础
.java->Class File->Class loader
类加载器与实例的过程:
先类加载器初始化Car.class,这时候它应该是虚的抽象的模板。
1 | public class Car { |
运行结果:
1121172875
649734728
1595953398
234698513
234698513
234698513
从中可以看到Class对象,Class模板的哈希码都是一样的,但是用模板new出来的实例hashcode是不同的。
想要逆推也很简单,从new的实例到Class模板再到类加载器就行。
1 | System.out.println(new Car().getClass().getClassLoader()); |
运行结果:jdk.internal.loader.ClassLoaders$AppClassLoader@2437c6dc