Java虚拟机运行时数据区

时间:2022-12-27 20:04:26

Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些数据区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域:
Java虚拟机运行时数据区

这些运行时数据区域的访问属性、内存配置参数和描述如下:
Java虚拟机运行时数据区

关于内存配置参数
- -Xms:表示java虚拟机堆区初始内存分配的大小。
- -Xmx:表示java虚拟机堆区分配内存的最大上限,开发过程中通常会将-Xms与-Xmx两个参数配置成相同的值,其目的是在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。
- -XX:newSize:表示新生代初始内存分配的大小,应小于-Xms的值。
- -XX:MaxnewSize:表示新生代分配内存的最大上限,应小于-Xmx的值。
- -Xmn:相当于同时设置了-XX:newSize、-XX:MaxnewSize这两个参数,即-XX:newSize = -XX:MaxnewSize = -Xmn。
- -XX:PermSize:表示非堆区初始内存分配的大小。
- -XX:MaxPermSize:表示非堆区分配内存的最大上限。