非静态代码块在Java中相对于构造器执行的顺序是什么?
每当创建一个对象时,都会在执行构造器之前执行非静态块。
非静态块
- 非静态块是类级别块,没有原型。
- 非静态块的需要是无论构造器如何,每当创建一个对象时都要执行任何逻辑。
- 非静态块由JVM在java堆栈区域中自动调用,以用于创建每个对象。
- 我们可以在 Java 中创建任意数量的非静态块 i。
- 非静态块的执行顺序是按定义的顺序。
示例
public class NonStaticBlockTest {
{
System.out.println("First Non-Static Block"); // first non-static block
}
{
System.out.println("Second Non-Static Block"); // second non-static block
}
{
System.out.println("Third Non-Static Block"); // third non-static block
}
NonStaticBlockTest() {
System.out.println("Execution of a Constructor"); // Constructor
}
public static void main(String args[]) {
NonStaticBlockTest nsbt1 = new NonStaticBlockTest();
NonStaticBlockTest nsbt2 = new NonStaticBlockTest();
}
}输出
First Non-Static Block Second Non-Static Block Third Non-Static Block Execution of a Constructor First Non-Static Block Second Non-Static Block Third Non-Static Block Execution of a Constructor
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 语言
C++
C#
MongoDB
MySQL
Javascript
PHP