Java类加载器学习记录


1.如果本类调用其他类的final静态变量,编译时能计算出结果,则不会去加载其他类静态代码块,如果编译时不能计算出结果,就会加载其他类静态代码块,即调用其他类中的final常量,不会加载其他类中静态代码块。

2.调用main方法,首先会去加载静态代码块。如果有父类,就先加载父类静态代码块。同一个类加载器中,已经加载过的静态代码块,不会重复去加载。

3.(BootStrap)根类加载器加载核心的类库,如加载java.lang.*这个包下的所有类,加载一个类的时候,首先查看当前环境是否已经加载过该类,如果没有,则交给父类加载器,逐层往上。最终如果所有父类加载器都加载不了,自己也加载不了,则抛出ClassNotFoundException异常。

posted @ 2020-06-13 13:26  今夕是何年?  阅读(117)  评论(0编辑  收藏  举报