为什么通过初始化块变量和构造方法变量输出了两次

来源:8-10 Java 中的 static 使用之静态初始化块

我是赵明珠

2015-01-24 16:20

为什么通过初始化块变量和构造方法变量输出了两次

写回答 关注

2回答

  • yymooc
    2015-01-25 21:54:51

    域的默认初始化分为两种:对于静态域,类在装载时对其进行初始化.对于非静态域,在类的实例创建时进行初始化.在默认的初始化前,域的值是不可预测的.
    首先“类的实例化”与“类的加载、连接与初始化”完全是两个不同的阶段,只有“类的加载、连接与初始化”都完成了才能进行“类的实例化”。
    还有一点,静态块里的代码也不是在类被加载时执行,而是在类被初始化时执行的。 
    类的加载简单说只是把class文件加载到内存,并没有执行任何代码。 

    希望能帮到你。。。。

  • 神经性bug
    2015-01-25 20:57:10

    初始化块是在类加载的时候执行的。构造方法是在类实例化的时候执行的。

    isu_腾飞

    请问 类加载的时候 与 类实例化的时候 有什么区别? 类加载的时候 是指程序只要执行 吗?

    2015-01-25 21:15:10

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530646 学习 · 6091 问题

查看课程

相似问题