静态初始化和非静态初始化
时间: 2023-09-07 21:17:32 浏览: 186
Java静态和非静态成员变量初始化过程解析
静态初始化和非静态初始化是Java中两种不同的初始化方式。
静态初始化指的是在静态代码块中或者在声明变量时给变量赋初值,例如:
```java
public class MyClass {
// 静态初始化
static int x = 10;
static {
// 静态代码块
x = 20;
}
}
// 调用静态变量
int a = MyClass.x;
```
非静态初始化指的是在类的构造方法中或者在实例化对象时给变量赋初值,例如:
```java
public class MyClass {
// 非静态变量
int y;
{
// 非静态初始化
y = 10;
}
// 构造方法
public MyClass() {
// 非静态初始化
y = 20;
}
}
// 实例化对象
MyClass obj = new MyClass();
// 获取非静态变量
int b = obj.y;
```
总的来说,静态初始化是在类加载时执行的,而非静态初始化是在对象实例化时执行的。
阅读全文