java初始化顺序
来源:互联网 发布:适用于mac的浏览器 编辑:程序博客网 时间:2024/06/05 14:30
1、在类的内部,变量定义的先后顺序决定了初始化的顺序,变量会在任何方法(包括构造器)被调用之前得到初始化,而对于静态变量,会首先初始化。
class Bowl {
Bowl(int marker) {
System.out.println("Bowl(" + marker + ")");
}
void f1(int marker) {
System.out.println("f1(" + marker + ")");
}
}
class Cupboard {
Bowl bowl3 = new Bowl(3);
static Bowl bowl4 = new Bowl(4);
Cupboard() {
System.out.println("Cupboard()");
bowl4.f1(2);
}
void f3(int marker) {
System.out.println("f3(" + marker + ")");
}
static Bowl bowl5 = new Bowl(5);
}
public class StaticInitialization {
public static void main(String[] args) {
System.out.println("Creating new Cupboard() in main");
}
static Cupboard cupboard = new Cupboard();
}
/*outout如下:
Bowl(4)
Bowl(5)
Bowl(3)
Cupboard()
f1(2)
Creating new Cupboard() in main
*/
//运行以上代码,要执行main方法,则必须先加载StaticInitialization.java类,
而在StaticInitialization.java类中定义了静态变量cupboard,则会先初始化Cupboard类,而Cupboard类中包含静态对象Bowl4、Bowl5,则会先加载Bowl类,输出Bowl(4)
Bowl(5) ,而Cupboard类中还定义了非静态变量bowl3,则输出Bowl(3),至此Cupboard中的变量初始化完毕,初始化其构造方法,输出Cupboard()
f1(2),至此StaticInitialization.java类中定义的静态变量cupboard所涉及到的内容初始化完毕,继续执行main方法中的内容,输出Creating new Cupboard() in main。
- java-java初始化顺序
- Java初始化顺序
- JAVA 初始化顺序
- JAVA初始化顺序
- Java程序初始化顺序
- Java初始化顺序
- [java]初始化顺序
- java变量初始化顺序
- java 初始化顺序
- Java初始化的顺序
- JAVA对象初始化顺序
- java对象初始化顺序
- JAVA 类初始化顺序
- JAVA初始化顺序
- Java 静态初始化顺序
- Java类初始化顺序
- java初始化顺序
- JAVA初始化顺序
- Robberies
- 如何编译docker 1.2.0版本的源码
- Spring_SSH整合之_架构的历史(四层架构整合JSP+MySQL+JavaBean+Hibernate)_3
- KL散度
- lombok在idea中安装以及使用
- java初始化顺序
- FFMPEG中最关键的结构体之间的关系
- JavaScript对象
- LeetCode 141. Linked List Cycle
- 代理的思想--实现lua中table的跟踪与只读
- JavaScript/JavaScript对象
- Shader实现头像遮罩效果
- JavaScript
- Faster R-CNN 数据集的文件格式