java 代码加载顺序
来源:互联网 发布:苏州远洋数据有限公司 编辑:程序博客网 时间:2024/06/05 14:27
例子:
class
X{
Y y=
new
Y();
public
X(){
System.out.print(
"X"
);
}
}
class
Y{
public
Y(){
System.out.print(
"Y"
);
}
}
public
class
Z
extends
X{
Y y=
new
Y();
public
Z(){
System.out.print(
"Z"
);
}
public
static
void
main(String[] args) {
new
Z();
}
}
初始化过程:
1. 初始化父类中的静态成员变量和静态代码块 ;
2. 初始化子类中的静态成员变量和静态代码块 ;
3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;
4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;
(1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(2)再执行父类的构造方法;输出X
(3) 初始化子类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(4)再执行子类的构造方法;输出Z
所以输出YXYZ
例子:
class
X{
Y y=
new
Y();
public
X(){
System.out.print(
"X"
);
}
}
class
Y{
public
Y(){
System.out.print(
"Y"
);
}
}
public
class
Z
extends
X{
Y y=
new
Y();
public
Z(){
System.out.print(
"Z"
);
}
public
static
void
main(String[] args) {
new
Z();
}
}
初始化过程:
1. 初始化父类中的静态成员变量和静态代码块 ;
2. 初始化子类中的静态成员变量和静态代码块 ;
3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;
4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;
(1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(2)再执行父类的构造方法;输出X
(3) 初始化子类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(4)再执行子类的构造方法;输出Z
所以输出YXYZ
0 0
- java 代码加载顺序
- java类中代码加载顺序
- Java类中代码的加载顺序
- JAVA中代码的加载顺序
- java类中代码加载的顺序
- JAVA中代码顺序,静态块 静态变量,加载顺序!
- java中static修饰符的代码的加载顺序
- Java源代码各个代码块的加载顺序
- java中各种代码块的加载顺序
- Java中类代码加载的顺序详解
- java 字父类 构造方法 代码块 加载顺序
- java加载顺序
- Java类加载顺序
- java类加载顺序
- java 加载顺序
- Java类加载顺序
- Java 类加载顺序
- java 类加载顺序
- kafka 操作
- js中this理解
- Android性能优化 浅析
- 设计模式【工厂模式】【单例模式】【装饰者模式】
- 使用OpenCV计算图像的轮廓矩的代码!
- java 代码加载顺序
- 磁卡会因手机长时间接触而消磁吗?
- DescriptionResourcePathLocationType ArtifactTransferException: Could not transfer artifact
- uboot.2015.07移植之驱动DM9000(8)
- Android DrawerLayout+NavigationView布局实现左右两边侧滑菜单
- POJ 3258 River Hopscotch [NOIP2015 D2T1] (洛谷 P2678 跳石头)
- 数据类操作之文件存储跟读写
- MongoDB 数据库级锁、建索引导致数据库阻塞、不合理使用嵌入 embed document、不合理使用 Array 字段等4个坑
- .net mvc controler有哪些返回值