java中的静态代码块
时间: 2024-01-24 21:16:56 浏览: 32
Java中的静态代码块是指在类被加载时自动执行的一段代码块,它可以用来初始化类的静态变量或执行一些静态方法。静态代码块只会在类被加载时执行一次,而且它的执行顺序是在类的构造函数之前。
静态代码块的语法如下:
```java
static {
// 静态代码块中的代码
}
```
下面是一个简单的示例:
```java
public class MyClass {
static {
System.out.println("静态代码块被执行");
}
public MyClass() {
System.out.println("构造函数被执行");
}
}
```
在这个示例中,当我们创建一个 `MyClass` 对象时,会首先执行静态代码块中的代码,然后再执行构造函数中的代码。当我们第二次创建 `MyClass` 对象时,静态代码块不会再次执行,因为它已经在第一次创建对象时执行过了。
需要注意的是,静态代码块只能访问类的静态成员和静态方法,它不能访问非静态成员和非静态方法。
相关问题
java 的静态代码块
静态代码块是在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();
}
}
```
输出结果:
```
父类静态代码块执行了!!!!
子类静态代码块执行了!!!!
父类非静态代码块执行了!!!!
父类构造函数执行了!!!!
子类非静态代码块执行了!!!!
子类构造函数执行了!!!!
```
从输出结果可以看出,静态代码块在类加载时执行,而非静态代码块和构造函数在创建对象时执行。父类的静态代码块先于子类的静态代码块执行,而非静态代码块和构造函数的执行顺序则按照代码的顺序执行。
java 静态代码块
静态代码块是在Java类加载时执行的一段代码,它在类的所有实例化对象之前执行。静态代码块用于初始化静态变量或执行一些只需执行一次的操作。以下是一个Java静态代码块的示例:
```java
public class MyClass {
static {
// 静态代码块中的代码
System.out.println("这是静态代码块");
}
public static void main(String[] args) {
// 主方法中的代码
System.out.println("这是主方法");
}
}
```
在上面的示例中,静态代码块用`static{}`包围,它在类加载时执行,并且只执行一次。当运行`MyClass`类时,会先执行静态代码块中的代码,然后再执行主方法中的代码。输出结果为:
```
这是静态代码块
这是主方法
```