//java 类在编译后会产生一个以.class结尾的字节码文件//该文件内存储了Class对象的相关信息,Class对象表示的是类在运行时的类型信息//Class与java.lang.reflect构成了java的反射技术//当我们要使用类时,例如使用new 操作符实例化一个新对象,访问类的静态方法,//jvm会先检查该类的有无加载,若有加载了就会直接进行相应的操作//若检查到没有加载,jvm就会先去加载这个类的对应的字节码文件(这里会进行相应的检查)//当加载成功后,就可以进行相应的操作了public class ClassTest{ public static void main(String [] args) throws Exception{ System.out.println(“before loading Circle.”); // 可以指定要加载的类 Class.forName(“Circle”); // 这里需要捕获异常或者抛出异常到下一级 System.out.println(“after loading Circle.”); System.out.println(“before loading Rectangle.”); Rectangle re = new Rectangle(); System.out.println(“after loading Rectangle.”); System.out.println("************************************"); System.out.println(“before loading A1.”); System.out.println(A1.trueFinal); System.out.println(“before loading A2.”); System.out.println(A2.noFinal); System.out.println("************************************"); //使用类字面常量来得到Class,利用反射来构建实例对象(调用的是默认构造函数) // 调用类字面常量不会触发类的初始化 Class<?> c = A3.class; System.out.println(“before loading A3.”); A3 a3 = (A3)c.newInstance(); System.out.println("************************************"); //根据运行结果:在继承关系里,在类的初始化时总是先初始化父类,在初始化子类 //实例化时也是如此 System.out.println(“before loading D1.”); D1 d1 = new D1(); }} class Circle { static { //类在加载初始时,会执行这段static代码块 System.out.println(“loading Circle…”); }} class Rectangle { static { //类在加载初始时,会执行这段static代码块 System.out.println(“loading Rectangle…”); }} class A1 { // 编译期常量,不会触发类的初始化 public static final int trueFinal = 10; static { //类在加载初始时,会执行这段static代码块 System.out.println(“loading A1…”); }} class A2 { // 静态常量,触发类的初始化 public static int noFinal = 5; static { //类在加载初始时,会执行这段static代码块 System.out.println(“loading A2…”); }} class A3 { static { //类在加载初始时,会执行这段static代码块 System.out.println(“loading A3…”); }} class B1 { static { System.out.println(“loading B1”); } public B1(){ System.out.println(“B1’s instance”); }} class D1 extends B1{ static { System.out.println(“loading D1”); } public D1(){ System.out.println(“D1’s instance”); }}
作者:努力奋斗的周周
来源:CSDN
原文:https://blog.csdn.net/qq_23013309/article/details/80550357
版权声明:本文为博主原创文章,转载请附上博文链接!