java – 静态初始化程序与实例初始化程序与构造函数
发布时间:2020-12-14 05:57:47 所属栏目:Java 来源:网络整理
导读:这个问题在这里已经有一个答案: Use of Initializers vs Constructors in Java8 我正在读Java考试.在我学习的时候,我遇到了java中不熟悉的语法.如大括号({})取消了没有名称的类体,有些具有静态关键字.我发现他们被称为“初始化器”.任何人都可以帮我指出他
这个问题在这里已经有一个答案:>
Use of Initializers vs Constructors in Java8
我正在读Java考试.在我学习的时候,我遇到了java中不熟悉的语法.如大括号({})取消了没有名称的类体,有些具有静态关键字.我发现他们被称为“初始化器”.任何人都可以帮我指出他们之间的关键差异,以及它们与构造函数的区别.谢谢 解决方法
它们之间的主要区别是它们执行的顺序.为了说明,我将以一个例子来解释:
public class SomeTest { static int staticVariable; int instanceVariable; // Static initialization block: static { System.out.println("Static initialization."); staticVariable = 5; } // Instance initialization block: { System.out.println("Instance initialization."); instanceVariable = 10; } // Constructor public SomeTest() { System.out.println("Constructor executed."); } public static void main(String[] args) { new SomeTest(); new SomeTest(); } } 输出结果为: Static initalization. Instance initialization. Constructor executed. Instance initialization. Constructor executed. 简短的说话: 一旦类被JVM加载,静态初始化块就会运行.>实例初始化块在每次实例化一个对象之前在构造函数之前运行.>构造函数(显然)每次实例化一个对象时运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |