首页 > 其他 > 详细

jvm的学习笔记:二、类的初始化,代码实战(3)

时间:2019-10-14 23:30:17      阅读:95      评论:0      收藏:0      [点我收藏+]
  • 首次主动此用导致类的初始化
    • MyParent4 myParent4 = new MyParent4();
    • MyParent4 myParent5 = new MyParent4();
    • 输出:
    • MyParent4 static block
      - --------
    • 依据:myParent5 new 对象的时候,并没有再次执行MyParent4的静态块。
  • 初始化数组的时候,其类并没有导致被初始化
    • MyParent4[] myParent4s = new MyParent4[1];
    • 输出:
    • 依据:new MyParent4[1]的时候,并没有执行MyParent4的静态块。

public class MyTest4 {

    public static void main(String[] args) {
        //首次主动此用导致类的初始化
        MyParent4 myParent4 = new MyParent4();
        System.out.println("--------");
        //其次不会
        MyParent4 myParent5 = new MyParent4();

        //对于数组来说,其类型是由jvm在运行期动态生成的,表示为[Lcom.chen.jvm.classloader.MyParent4
        //这种形式,动态生成的类型。其父类是object
//
//        MyParent4[] myParent4s = new MyParent4[1];
//        System.out.println(myParent4s.getClass());
//        System.out.println(myParent4s.getClass().getSuperclass());
//
//        MyParent4[][] myParent4s2 = new MyParent4[1][1];
//        System.out.println(myParent4s2.getClass());
//        System.out.println(myParent4s2.getClass().getSuperclass());
//
//        System.out.println("----------");
//        int[] i = new int[1];
//        System.out.println(i.getClass());
//        System.out.println(i.getClass().getSuperclass());
    }

}


class MyParent4{
    static {
        System.out.println("MyParent4 static block");
    }
}

jvm的学习笔记:二、类的初始化,代码实战(3)

原文:https://www.cnblogs.com/boychen/p/11674833.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!