JVM相关知识简单总结

JVM内存区域

1,程序计数器:当前线程执行的字节码的行号指示器,线程私有,唯一一个虚拟机规范中没有规定任何OOM的区域

2,虚拟机栈:用于存储局部变量,操作数栈,动态链接,方法出口信息等

3,本地方法栈:执行Native方法服务使用的的内存

4,堆:1个Eden区+2个survivor区+老年代,垃圾回收器管理的主要区域

5,方法区:存储类信息,常量,静态变量,也叫永久代

JVM常见参数

-Xms 初始堆大小

-Xmx 最大堆大小

-Xmn 新生代大小(一般为整个堆的1/3或1/4),其中包含1个Eden和2个Survivor

-XX:PermSize 初始永久代大小,永久代也就是方法区,多线程共享内存

-XX:MaxPermSize 永久代最大值

 

老年代大小 = 堆 - 新生代

JVM内存 = 堆 + 永久代

对象在JVM中如何分配

1,寻找空闲的堆空间,一种是指针碰撞,一种是空闲列表

在堆空间上分配该对象所需的空间,一种是CAS分配,一种是TLAB分配

2,初始化成员变量

3,引用指向对象

对象的访问定位

通过句柄访问对象

通过直接指针访问对象

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值