This commit is contained in:
CyC2018
2019-03-27 20:47:23 +08:00
6 changed files with 313 additions and 1 deletions

View File

@ -216,7 +216,19 @@ obj = null;
- 需要移动大量对象,处理效率比较低。
<<<<<<< HEAD
### 3. 复制
=======
优点:
- 不会产生内存碎片
不足:
- 在标记-清除的基础上还需进行对象的移动成本相对较高
### 3. 复制
>>>>>>> 9f680db0cc99bd992c7f979442ecf458a33f9c1b
![](index_files/4_2001550547640585.png)
@ -490,7 +502,11 @@ public static final int value = 123;
初始化阶段才真正开始执行类中定义的 Java 程序代码。初始化阶段是虚拟机执行类构造器 &lt;clinit>() 方法的过程。在准备阶段,类变量已经赋过一次系统要求的初始值,而在初始化阶段,根据程序员通过程序制定的主观计划去初始化类变量和其它资源。
<<<<<<< HEAD
&lt;clinit>() 是由编译器自动收集类中所有类变量的赋值动作和静态语句块中的语句合并产生的,编译器收集的顺序由语句在源文件中出现的顺序决定。特别注意的是,静态语句块只能访问到定义在它之前的类变量,定义在它之后的类变量只能赋值,不能访问。例如以下代码:
=======
&lt;clinit>() 是由编译器自动收集类中所有类变量的赋值动作和静态语句块中的语句合并产生的,编译器收集的顺序由语句在源文件中出现的顺序决定。特别注意的是,静态语句块只能访问到定义在它之前的类变量,定义在它之后的类变量只能赋值,不能访问。例如以下代码:
>>>>>>> 9f680db0cc99bd992c7f979442ecf458a33f9c1b
```java
public class Test {