From b40f301b71f36de6e2e459f8dc8e1f2b3baaccb0 Mon Sep 17 00:00:00 2001
From: yuanguangxin <274841922@qq.com>
Date: Thu, 16 Apr 2020 00:57:33 +0800
Subject: [PATCH] update jvm
---
.idea/workspace.xml | 80 +++++++++++++++++++++++----------------------
Rocket.md | 1 +
2 files changed, 42 insertions(+), 39 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 42daf74..0d36467 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -3,7 +3,6 @@
-
@@ -265,24 +264,9 @@
-
-
-
-
-
-
- 1581102125245
-
-
-
- 1581102125245
-
-
- 1581156795852
-
-
-
- 1581156795852
+
+
+
1581270301073
@@ -606,14 +590,28 @@
1585234195148
-
- 1585377224497
+
+ 1585657673868
- 1585377224497
+ 1585657673869
+
+
+ 1585658308922
+
+
+
+ 1585658308922
-
+
+ 1585658338742
+
+
+
+ 1585658338743
+
+
@@ -666,7 +664,6 @@
-
@@ -690,8 +687,9 @@
-
-
+
+
+
@@ -706,14 +704,14 @@
-
+
-
-
-
+
+
+
-
+
@@ -756,34 +754,38 @@
-
+
-
+
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
diff --git a/Rocket.md b/Rocket.md
index 6c8ac81..9e5f8db 100644
--- a/Rocket.md
+++ b/Rocket.md
@@ -202,6 +202,7 @@ MySQL为了保证ACID中的一致性和持久性,使用了WAL(Write-Ahead Logg
2. Java虚拟机栈:与程序计数器一样,Java虚拟机栈(Java Virtual Machine Stacks)也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧 ,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。
3. 本地方法栈:本地方法栈(Native Method Stack)与虚拟机栈所发挥的作用是非常相似的,它们之间的区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到的Native方法服务。
4. Java堆:对于大多数应用来说,Java堆是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。
+5. 方法区:方法区用于存储已被虚拟机加载的类信息、常量、静态变量,如static修饰的变量加载类的时候就被加载到方法区中。运行时常量池是方法区的一部分,class文件除了有类的字段、接口、方法等描述信息之外,还有常量池用于存放编译期间生成的各种字面量和符号引用。在老版jdk,方法区也被称为永久代。在1.8之后,由于永久代内存经常不够用或发生内存泄露,爆出异常java.lang.OutOfMemoryError,所以在1.8之后废弃永久代,引入元空间的概念。元空间是方法区的在HotSpot jvm 中的实现,元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。理论上取决于32位/64位系统可虚拟的内存大小。可见也不是无限制的,需要配置参数。
### 分代回收