勤说

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、JVM将内存分为方法区、堆、程序计数器、虚拟机栈、本地方法栈,其中方法区和堆是线程共享的,而程序计数器、虚拟机栈、本地方法栈是非线程共享的。

  在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。另外,运行时常量池也在方法区中。

  在JVM初始运行时,JVM已经分配好方法区和堆,而JVM每遇到一个线程,就为其分配一个程序计数器、虚拟机栈和本地方法栈,当线程终止时,三者(虚拟机栈、本地方法栈、程序计数器)所占用的内存空间也会被释放掉。非线程共享的那三个区域的生命周期与所属线程相同,而线程共享的区域与JAVA程序运行的生命周期相同,所以这也是系统垃圾回收的场所只发生在线程共享的区域(实际上对大部分虚拟机来说只发生在Heap(堆)上)的原因。

2、

-Xmx:最大堆大小

-Xms:初始堆大小

-Xmm:年轻代大小

-XXSurvivorRatio:年轻代中Eden区与Survivor区的大小比值

posted on 2017-03-07 14:42  勤说  阅读(88)  评论(0编辑  收藏  举报