静态块、动态块、构造函数、继承函数等的执行顺序
2016-12-28 22:05
204 查看
不涉及继承
静态代码块, 动态代码块 ,构造函数
package demo01;
public class Demo02 {
public Demo02(){
System.out.println("构造函数");
}
static{
System.out.println("静态代码块");
}
{
System.out.println("动态代码块");
}
public static void main(String[] args) {
new Demo02();
new Demo02();
}
}
输出结果:
静态代码块
动态代码块
构造函数
动态代码块
构造函数
涉及继承
package demo01;
import org.junit.Test;
public class Demo02 {
public static void main(String[] args) {
Zi z = new Zi();
System.out.println("---------------------");
Zi z1 = new Zi();
}
}
//父类
class Fu{
public Fu(){
System.out.println("父类构造函数");
}
static{
System.out.println("父类静态代码块");
}
{
System.out.println("父类动态代码块");
}
}
//子类
class Zi extends Fu{
public Zi(){
System.out.println("子类构造函数");
}
static{
System.out.println("子类静态代码块");
}
{
System.out.println("子类动态代码块");
}
}
输出结果:
父类静态代码块
子类静态代码块
父类动态代码块
父类构造函数
子类动态代码块
子类构造函数
---------------------
父类动态代码块
父类构造函数
子类动态代码块
子类构造函数
结论:
1.静态代码块只执行一次
2.静态的东西是属于类的,非静态的东西是属于实例的。
3.静态的先执行,然后才是非静态的。
静态代码块, 动态代码块 ,构造函数
package demo01;
public class Demo02 {
public Demo02(){
System.out.println("构造函数");
}
static{
System.out.println("静态代码块");
}
{
System.out.println("动态代码块");
}
public static void main(String[] args) {
new Demo02();
new Demo02();
}
}
输出结果:
静态代码块
动态代码块
构造函数
动态代码块
构造函数
涉及继承
package demo01;
import org.junit.Test;
public class Demo02 {
public static void main(String[] args) {
Zi z = new Zi();
System.out.println("---------------------");
Zi z1 = new Zi();
}
}
//父类
class Fu{
public Fu(){
System.out.println("父类构造函数");
}
static{
System.out.println("父类静态代码块");
}
{
System.out.println("父类动态代码块");
}
}
//子类
class Zi extends Fu{
public Zi(){
System.out.println("子类构造函数");
}
static{
System.out.println("子类静态代码块");
}
{
System.out.println("子类动态代码块");
}
}
输出结果:
父类静态代码块
子类静态代码块
父类动态代码块
父类构造函数
子类动态代码块
子类构造函数
---------------------
父类动态代码块
父类构造函数
子类动态代码块
子类构造函数
结论:
1.静态代码块只执行一次
2.静态的东西是属于类的,非静态的东西是属于实例的。
3.静态的先执行,然后才是非静态的。
相关文章推荐
- 转来的:java中静态块和构造函数的执行顺序问题
- Java 静态块 、构造块、构造函数执行顺序
- Java对象的构造过程---子类继承父类时(非)静态块及构造函数等的执行顺序
- [备忘]java 静态块、非静态块、静态函数、构造函数 执行顺序
- Java类在new的过程中,静态域、静态块、非静态域、非静态块、构造函数的执行顺序问题
- Java 父类与子类初始化块,静态块,构造函数执行顺序
- 静态变量、静态块、成员变量、构造函数在类实例化时执行顺序
- java静态块,普通块,构造函数的执行顺序
- Java中静态块 代码块 构造函数的执行顺序
- Java中静态域、静态块、非静态域、非静态块、构造函数的执行顺序
- 静态块,静态属性,成员变量,静态方法,构造函数执行顺序
- Java基础 静态块、非静态块、构造函数的执行顺序
- java 静态块、非静态块、静态函数、构造函数 执行顺序
- Java的块,静态块,构造函数,继承的执行先后顺序
- Java基础-静态块、非静态块、构造函数的执行顺序
- 不包含继承时类中的静态块、静态方法、非静态方法、构造函数的执行顺序?
- java的静态属性,静态块,构造函数的执行顺序
- 静态块、自由块及构造函数的执行顺序
- Java基础 静态块、非静态块、构造函数的执行顺序
- Java类静态属性、静态块、非静态属性、非静态块、构造函数在初始化时的执行顺序