java

    技术2024-08-11  62

    package java_219_JVM核心机制_类加载全过程_初始化时机_类的主动引用和被动引用_静态初始化块执行顺序问题_练习;

    public class Demo01 { //如果添加静态方法 先加载链接然后初始化后;才能往下执行 static { System.out.println(“静态初始化类A”); } public static void main(String[] args) { System.out.println(“Demo01的main方法”); System.out.println("(先执行Demo01的main方法,然后在调用A方法)"); A a = new A();//2.调用这个方法 System.out.println(A.width);//4.打印这个 A a2 = new A();//类加载的初始化只有一次;不需要反复加载 } } /*

    测试 */ class A extends A_Father{ //继承父类

    //创建一个变量 static属性;1.(a)先执行类加载 public static int width = 100;//width 宽度;即静态变量,静态域(field) //定义一个初始化块;1.(b)先执行类加载;进行静态初始化 static { System.out.println(“静态初始化类A”); width = 300;//最后打印出300;是因为程序从上往下合并执行 } public A(){//3.在执行这个构造器对象; System.out.println(“创建A类的对象”); } } /**

    测试调用的顺序;类的加载过程;初始化时机

    @author Administrator

    */ class A_Father{ //Father父类;Father的父类是Object;同理调用也是先调用Object的静态方法;先初始化Object的静态方法 //定义一个初始化块; static { System.out.println("=先执行父类"); System.out.println(“静态初始化类A_Father”); }

    } //结果-------------------------------------------

    Processed: 0.021, SQL: 10