java 的静态代码块
时间: 2024-03-17 09:37:58 浏览: 187
静态代码块
静态代码块是在Java类加载时执行的一段代码,它用于初始化静态成员变量或执行一些静态操作。静态代码块在类加载时只执行一次,并且在类的所有实例之前执行。静态代码块的执行顺序是在类加载时按照代码的顺序执行。
以下是一个示例,演示了Java中的静态代码块的使用和执行顺序[^1]:
```java
class StaticTest {
// 静态代码块
static {
System.out.println("父类静态代码块执行了!!!!");
}
// 非静态代码块
{
System.out.println("父类非静态代码块执行了!!!!");
}
// 构造函数
public StaticTest() {
System.out.println("父类构造函数执行了!!!!");
}
}
class StaticTestSon extends StaticTest {
// 静态代码块
static {
System.out.println("子类静态代码块执行了!!!!");
}
// 非静态代码块
{
System.out.println("子类非静态代码块执行了!!!!");
}
// 构造函数
public StaticTestSon() {
System.out.println("子类构造函数执行了!!!!");
}
public static void main(String[] args) {
// 创建子类对象
StaticTestSon son = new StaticTestSon();
}
}
```
输出结果:
```
父类静态代码块执行了!!!!
子类静态代码块执行了!!!!
父类非静态代码块执行了!!!!
父类构造函数执行了!!!!
子类非静态代码块执行了!!!!
子类构造函数执行了!!!!
```
从输出结果可以看出,静态代码块在类加载时执行,而非静态代码块和构造函数在创建对象时执行。父类的静态代码块先于子类的静态代码块执行,而非静态代码块和构造函数的执行顺序则按照代码的顺序执行。
阅读全文