摘要:
首次主动此用导致类的初始化 MyParent4 myParent4 = new MyParent4(); MyParent4 myParent5 = new MyParent4(); 输出: MyParent4 static block 依据:myParent5 new 对象的时候,并没有再次执行M 阅读全文
摘要:
当接口被初始化的时候,不要求其父类被初始化 System.out.println(MyChild5.c); 输出: MyChild5 1 依据:new Random().nextInt(3)并非编译区间可以确定的,所以初始化了MyChild5,但是没有初始化MyParent5。 阅读全文
摘要:
常量在编译阶段,会存在调用这个常量的方法的所在的类的常量池当中 System.out.println(MyParent2.str); 输出: hello parent2 依据:在MyTest2类调用MyParent2.str,MyParent2中的静态类没有执行。 当一个常量的值并非编译区间可以确定 阅读全文
摘要:
对于静态字段来说,直接定义该字段的类才会被初始化 System.out.println(MyChild1.str); 输出: myParent1 static block hello myParent1 依据:直接使用MyChild1.str,MyChild1的static没有被初始化 当一个类被初 阅读全文
摘要:
1. 在JAVA代码中,类型的加载、连接与初始化过程都是程序运行期间完成的。 类型的加载:将已经存在的class从硬盘加载到内存。 类型的连接:将类与类之间的关系确定好。 类型的初始化:类型 静态的变量进行赋值。 2. 类加载器(classLoader)的深入剖析 每一个类都是由类加载器加载到类型当 阅读全文