JVM内存模型与调优参数

JVM内存模型

本地方法栈

本地方法栈为虚拟机使用到的 Native 方法服务
Native 方法是 Java 通过 JNI 直接调用本地 C/C++ 库,可以认为是 Native 方法相当于 C/C++ 暴露给 Java 的一个接口
如notify,hashcode,wait等都是native方法

通过new关键字创建的对象都会使用堆内存

堆是线程共享的

堆中有垃圾回收机制

堆内存溢出(OutOfMemoryError)

死循环创建对象
堆内存诊断

1.命令行方式

‘jps’获取运行进程号
‘jmap -heap 进程号’查看当前时刻的堆内存信息

2.jconsole

命令行输入jconsole打开可视化的界面连接上进程
可视化的检测连续的堆内存信息

3.jvisualvm

命令行输入jvisualvm打开可视化界面选择进程
可视化的查看堆内存信息

方法区

方法区只是一种概念上的规范,具体的实现各种虚拟机和不同版本不相同
HotSpot1.6 使用永久代作为方法区的实现
HotSpot1.8使用本地内存的元空间作为方法区的实现(但StringTable还是放在堆中)
在这里插入图片描述

程序计数器(Program Counter Register)

每条线程都有一个独立的的程序计数器,各线程间的计数器互不影响,因此该区域是线程私有的。该内存区域是唯一一个在Java虚拟机规范中没有规定任何OOM(内存溢出:OutOfMemoryError࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值