静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(下)

简介: 哈喽,大家好,我是指北君。在Java中,静态代码块、构造代码块、构造函数、普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。

反编译生成的class文件:46.jpg

执行结果:


47.jpg

我们创建了两个匿名对象,但是静态代码块只是调用了一次。

6、父类和子类执行顺序

对象的初始化顺序:

首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有构造代码块,如果有就执行父类的构造代码块,父类的构造代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有构造代码块,如果有就执行子类的构造代码块。子类的构造代码块执行完毕再去执行子类的构造方法。

总之一句话,静态代码块内容先执行,接着执行父类构造代码块和构造方法,然后执行子类构造代码块和构造方法。

父类:SuperClass.java

48.png


子类:SubClass.java49.png

测试:

50.png

打印结果:

51.jpg

相关文章
|
3月前
|
Java 编译器
不同变量的赋值时机 | 常见的面试题 | 静态代码块
这篇文章讨论了Java中不同变量的赋值时机,包括基本数据类型、引用数据类型、类变量、实例变量和局部变量,并解释了静态代码块、代码块和构造函数的执行顺序。
不同变量的赋值时机 | 常见的面试题 | 静态代码块
|
5月前
|
Java 编译器
Java中4种代码块:普通代码块,静态代码块,同步代码块,构造代码块
Java中4种代码块:普通代码块,静态代码块,同步代码块,构造代码块
221 0
实例详解局部代码块,构造代码块,静态代码块
实例详解局部代码块,构造代码块,静态代码块
|
Java
类成员(代码块)
类成员(代码块)
56 1
Java中类的初始化过程:(静态成员变量,静态代码块,普通成员变量,代码块初始化顺序)
Java中类的初始化过程:(静态成员变量,静态代码块,普通成员变量,代码块初始化顺序)
131 0
|
Java 编译器
复习篇【类的构造方法与代码块的执行】
复习篇【类的构造方法与代码块的执行】
复习篇【类的构造方法与代码块的执行】
|
Java 编译器
静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(上)
哈喽,大家好,我是指北君。 在Java中,静态代码块、构造代码块、构造函数、普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。
静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(上)
|
架构师 Java Spring
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(下)
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(下)
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(下)
类、变量、块、构造器、继承初始化顺序,终极解答。
最近发现微信群里面有些群友在讨论类的初始化顺序,如类的静态变量、成员变量、静态代码块、非静态代码块、构造器,及继承父类时,它们的初始化顺序都是怎样的,下面我通过例子来说明这个情况,以免被人误导。
类、变量、块、构造器、继承初始化顺序,终极解答。
|
Java 编译器 Spring
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(上)
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(上)