auto commit
This commit is contained in:
@ -65,7 +65,7 @@ private 方法隐式地被指定为 final,如果在子类中定义的方法和
|
||||
|
||||
**1. 静态变量**
|
||||
|
||||
静态变量在内存中只存在一份,只在类第一次实例化时初始化一次。
|
||||
静态变量在内存中只存在一份,只在类初始化时赋值一次。
|
||||
|
||||
- 静态变量:类所有的实例都共享静态变量,可以直接通过类名来访问它;
|
||||
- 实例变量:每创建一个实例就会产生一个实例变量,它与该实例同生共死。
|
||||
@ -83,11 +83,23 @@ public class A {
|
||||
|
||||
**3. 静态语句块**
|
||||
|
||||
静态语句块和静态变量一样在类第一次实例化时运行一次。
|
||||
静态语句块在类初始化时运行一次。
|
||||
|
||||
**4. 初始化顺序**
|
||||
**4. 静态内部类**
|
||||
|
||||
静态数据优先于其它数据的初始化,静态变量和静态语句块哪个先运行取决于它们在代码中的顺序。
|
||||
内部类的一种,静态内部类不依赖外部类,且不能访问外部类的非 static 变量和方法。
|
||||
|
||||
**5. 静态导包**
|
||||
|
||||
```source-java
|
||||
import static com.xxx.ClassName.*
|
||||
```
|
||||
|
||||
在使用静态变量和方法时不用再指明 ClassName,从而简化代码,但可读性大大降低。
|
||||
|
||||
**6. 变量赋值顺序**
|
||||
|
||||
静态变量的赋值和静态语句块的运行优先于实例变量的赋值和普通语句块的运行,静态变量的赋值和静态语句块的运行哪个先执行取决于它们在代码中的顺序。
|
||||
|
||||
```java
|
||||
public static String staticField = "静态变量";
|
||||
@ -99,8 +111,6 @@ static {
|
||||
}
|
||||
```
|
||||
|
||||
实例变量和普通语句块的初始化在静态变量和静态语句块初始化结束之后。
|
||||
|
||||
```java
|
||||
public String field = "实例变量";
|
||||
```
|
||||
@ -111,7 +121,7 @@ public String field = "实例变量";
|
||||
}
|
||||
```
|
||||
|
||||
最后才是构造函数中的数据进行初始化
|
||||
最后才运行构造函数
|
||||
|
||||
```java
|
||||
public InitialOrderTest() {
|
||||
@ -121,25 +131,13 @@ public InitialOrderTest() {
|
||||
|
||||
存在继承的情况下,初始化顺序为:
|
||||
|
||||
1. 父类(静态变量、静态语句块块)
|
||||
1. 父类(静态变量、静态语句块)
|
||||
2. 子类(静态变量、静态语句块)
|
||||
3. 父类(实例变量、普通语句块)
|
||||
4. 父类(构造函数)
|
||||
5. 子类(实例变量、普通语句块)
|
||||
6. 子类(构造函数)
|
||||
|
||||
**5. 静态内部类**
|
||||
|
||||
内部类的一种,静态内部类不依赖外部类,且不能访问外部类的非 static 变量和方法。
|
||||
|
||||
**6. 静态导包**
|
||||
|
||||
```source-java
|
||||
import static com.xxx.ClassName.*
|
||||
```
|
||||
|
||||
在使用静态变量和方法时不用再指明 ClassName,从而简化代码,但可读性大大降低。
|
||||
|
||||
# 二、Object 通用方法
|
||||
|
||||
## 概览
|
||||
|
Reference in New Issue
Block a user