读这个文章http://www.onjava.com/pub/a/onjava/2005/01/26/classloading.html,记一下。
0.类的方法(应该还有static的数据)都存在class文件中。
1.class对象是否相等,有三要素:类名、包名和classloader。
2.新jvm启动时,bootstrap classloader会把rt.jar 读入,这个classloader是个native类所以无法获得具体信息。(core java)
3.Java extension classloader启动,负责将java.ext.dirs下的所有jar包读入。(classpath配置)
4.AppClassLoader负责读入程序的class。
5.除bootstrap外每个classloader 都是由其他classloader load进来的。
6.在构造函数里不应该调用getClass()。
7.查找类都是先在父classloader找,再在自己里面找。
8.static指的是在一个classloader里只有一份,static块在load时执行。