类的主动引用与被动引用

  1. 主动引用(一定会发生类的初始化)
    1. new一个类的对象;
    2. 调用类的静态变量(final常量除外)和静态方法;
    3. 使用反射;
    4. 虚拟机启动,先启动main()方法所在的类;
    5. 先初始化父类。
  2. 被动引用(不会发生类的初始化)
    1. 访问静态域时,只有真正声明这个域的类才会被初始化(通过子类引用父类的静态变量,不会导致子类初始化);
    2. 通过数组定义类引用(A[] a = new A[10]),不会初始化类;
    3. 引用常量不会初始化类(常量在编译阶段就存入调用类的常量池中了)。
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务