auto commit
This commit is contained in:
parent
e6a1fbc213
commit
93d11dcb85
14
notes/JVM.md
14
notes/JVM.md
|
@ -53,11 +53,11 @@
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//dc695f48-4189-4fc7-b950-ed25f6c80f82.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//dc695f48-4189-4fc7-b950-ed25f6c80f82.jpg"/> </div><br>
|
||||||
|
|
||||||
注:白色区域为线程私有的,蓝色区域为线程共享的。
|
注:白色区域为线程私有,蓝色区域为线程共享。
|
||||||
|
|
||||||
## 程序计数器
|
## 程序计数器
|
||||||
|
|
||||||
记录正在执行的虚拟机字节码指令的地址(如果正在执行的是 Native 方法则为空)。
|
记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。
|
||||||
|
|
||||||
## Java 虚拟机栈
|
## 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 异常。
|
和 Java 堆一样不需要连续的内存,并且可以动态扩展,动态扩展失败一样会抛出 OutOfMemoryError 异常。
|
||||||
|
|
||||||
|
@ -92,9 +92,9 @@
|
||||||
|
|
||||||
运行时常量池是方法区的一部分。
|
运行时常量池是方法区的一部分。
|
||||||
|
|
||||||
类加载后,Class 文件中的常量池(用于存放编译期生成的各种字面量和符号引用)就会被放到这个区域。
|
Class 文件中的常量池(编译器生成的各种字面量和符号引用)会在类加载后被放入这个区域。
|
||||||
|
|
||||||
在运行期间也可以用过 String 类的 intern() 方法将新的常量放入该区域。
|
除了在编译期生成的常量,还允许动态生成,例如 String 类的 intern()。这部分常量也会被放入运行时常量池。
|
||||||
|
|
||||||
## 直接内存
|
## 直接内存
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user