auto commit

This commit is contained in:
CyC2018 2018-03-22 16:37:48 +08:00
parent e6a1fbc213
commit 93d11dcb85

View File

@ -53,11 +53,11 @@
<div align="center"> <img src="../pics//dc695f48-4189-4fc7-b950-ed25f6c80f82.jpg"/> </div><br>
注:白色区域为线程私有,蓝色区域为线程共享
注:白色区域为线程私有,蓝色区域为线程共享。
## 程序计数器
记录正在执行的虚拟机字节码指令的地址(如果正在执行的是 Native 方法则为空)。
记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。
## Java 虚拟机栈
@ -76,13 +76,13 @@
所有对象实例都在这里分配内存。
这块区域是垃圾收集器管理的主要区域("GC 堆 ")。现在收集器基本都是采用分代收集算法,Java 堆还可以分成:新生代和老年代(新生代还可以分成 Eden 空间、From Survivor 空间、To Survivor 空间等
这块区域是垃圾收集器管理的主要区域("GC 堆 ")。现在收集器基本都是采用分代收集算法,因此 Java 堆还可以分成:新生代和老年代,新生代还可以分成 Eden 空间、From Survivor 空间、To Survivor 空间等。
不需要连续内存,可以通过 -Xmx 和 -Xms 来控制动态扩展内存大小,如果动态扩展失败会抛出 OutOfMemoryError 异常。
不需要连续内存,并且可以通过 -Xmx 和 -Xms 来控制动态扩展内存大小,如果动态扩展失败会抛出 OutOfMemoryError 异常。
## 方法区
用于存放已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
用于存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
和 Java 堆一样不需要连续的内存,并且可以动态扩展,动态扩展失败一样会抛出 OutOfMemoryError 异常。
@ -92,9 +92,9 @@
运行时常量池是方法区的一部分。
类加载后Class 文件中的常量池(用于存放编译期生成的各种字面量和符号引用)就会被放到这个区域。
Class 文件中的常量池(编译器生成的各种字面量和符号引用)会在类加载后被放入这个区域。
在运行期间也可以用过 String 类的 intern() 方法将新的常量放入该区域
除了在编译期生成的常量,还允许动态生成,例如 String 类的 intern()。这部分常量也会被放入运行时常量池
## 直接内存