0
点赞
收藏
分享

微信扫一扫

JVM运行时数据区(六)

本地方法栈

-- 用来管理本地方法 -- 线程私有的 -- 某个线程调用本地方法,就是脱离虚拟机 -- 并不是所有的jvm都支持本地方法栈

总体概述
a. 一个jvm实例只存在一个堆内存
b. Java 堆区在jvm启动时就被创建了,空间大小就定型了
	堆的空间大小是可以调节的
c. 物理上是存放在不连续的内存空间,但逻辑上是连续的
d. 所有的线程共享JAVA堆,在这里还可以划分私有的缓冲区(提高并发 TLAB)
e. 所有的对象实例及数组都应在运行时分配在堆上
f. 数组和对象可能永远不会存储在栈上
g. 方法结束后,堆中的对象不会立刻移除,仅仅在垃圾回收的时候移除 
h. 堆是垃圾回收的重点
i. 内存细分--垃圾回收基于分代收集理论   ---- 新生区/新生代+养老区/老年代+元空间
堆空间的大小设置和查看
a. 大小设置
-Xms 用来设置堆空间的初始大小
	-X是JVM的运行参数
	-ms是memory start的缩写
-Xmx 用来设置堆空间的最大大小
b. 默认大小
	初始大小: 电脑物理内存大小/64
	最大大小: 电脑物理内存大小/4
c. 手动设置: 建议把初始堆内存和最大堆内存设置为一样大小
d. 通过runtime获取堆内存大小适中和设置的不一致的原因: 是由于from区和to区是对伊栗园区的复制,只能算一个
e. 查看命令 
	方式一: jps   / jstat -gc +线程号
	方式二: 在运行时添加参数 -XX:+PrintGCDetails
举报

相关推荐

0 条评论