java中代码执行顺序(静态代码块、构造函数)
来源:互联网 发布:ppt柱状图显示数据 编辑:程序博客网 时间:2024/04/29 15:32
public class A {
static int a=0;
int b=0;
A(){
System.out.println("A construct func is running");
this.b=4;
System.out.println(this.b);
}
{
System.out.println("a common block is running");
this.b=3;
System.out.println(this.b);
}
static{
System.out.println("A static block is running");
a=2;
System.out.println(a);
}
public static void staticfunc(){
System.out.println("A static func is running");
}
void print(){
System.out.println(this.b);
}
public static void main(String[] args) {
System.out.println("main is running");
System.out.println(A.a);
A a = new A();
a.print();
}
}
运行结果:
A static block is running
2
main is running
2
a common block is running
3
A construct func is running
4
4
执行顺序:
静态变量初始化--静态代码块--main方法--对象实例化过程:(成员变量初始化--非静态代码块---构造函数)
父类子类执行顺序:
public class B extends A {
static int a=1;
int b=1;
{
System.out.println("b common block is running");
this.b=12;
System.out.println(this.b);
}
static{
System.out.println("B static block is running");
a=13;
System.out.println(a);
}
B(){
System.out.println("B construct func is running");
this.b=10;
System.out.println(this.b);
}
public static void main(String[] args) {
System.out.println("B main is running");B b = new B();
}
}
执行结果:
A static block is running
2
B static block is running
13
B main is running
a common block is running
3
A construct func is running
4
b common block is running
12
B construct func is running
10
执行顺序:父类静态变量初始化--父类静态代码块--子类静态变量初始化--子类静态代码块--main函数--子类实例化(父类成员变量初始化--父类非静态代码块--父类构造函数---子类成员变量初始化--子类非静态代码块--子类构造函数)
总结:
1、方法、块对应静态和普通两个级别,如果不产生实例,就只执行静态部分,所有关联类中的静态部分总先于非静态(实例化)部分执行。
2、静态部分:静态变量初始化--静态代码块--main方法。
3、非静态部分(对象实例化过程):成员变量初始化--非静态代码块---构造函数
4、父类先于子类。静态部分:父类静态部分--子类静态部分;非静态部分:父类非静态部分--子类非静态部分。
0 0
- java 静态代码块 代码块 构造函数执行顺序
- Java中构造函数、构造代码块、静态代码块等的执行顺序问题
- Java中静态代码块、构造代码块构造函数的执行顺序
- 举例说明java中静态代码块、非静态代码块、构造函数的执行顺序
- Java中静态代码块、非静态代码块和构造函数的执行顺序
- Java中静态代码块、非静态代码块、构造函数的执行顺序与作用
- java中静态代码块,非静态代码块,构造函数之间的执行顺序
- JAVA继承关系中静态代码块、非静态代码块,构造函数的执行顺序
- java中代码块的执行顺序--静态代码块,构造器,普通代码块,构造块,main主函数
- java中代码执行顺序(静态代码块、构造函数)
- java一般代码块,构造块,构造函数,静态代码块的执行顺序实践
- Java中静态块 代码块 构造函数的执行顺序
- Java静态代码块、静态函数、动态代码块、构造函数等的执行顺序
- 静态代码块,代码块,构造函数的执行顺序
- 静态代码块、代码块、构造函数执行顺序
- 黑马程序员——java中静态代码块、构造代码块、构造函数的执行顺序以及作用
- Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
- java中的静态代码块、构造代码块、构造函数执行顺序
- CODE[VS] 1031素数环
- Angular中实现树形结构视图
- codevs 1992 聚会 最短路+SPFA优化+反向建边
- iOS-UITableView的增加、移除
- 201603232007
- java中代码执行顺序(静态代码块、构造函数)
- Cordys BOP 4.3流程实例监控及流程恢复、流程环节配置Method问题的分析处理
- RCC
- java十九节-RandomAccessFile
- hdoj 1867 A + B for you again【kmp,前缀与后缀的匹配】
- 第4周项目5-(1)
- transform
- codevs 1992 聚会
- Java中switch语句判断季度