JVM,JMM,类加载机制,垃圾回收知识点

1.JVM

1.JVM5个组成部分

JVM布局(HotSpot):JDK1.8

1.堆(线程共享):
所有的对象都存在此区域,此区域也是JVM中最大的一块区域。JVM垃圾回收就是针对此区域

2.JVM栈(Java虚拟机栈)线程私有
(1)局部变量表:8大基础数据类型,对象的引用
(2)操作栈:每个方法都会对应一个操作栈
(3)动态链接:指向常量池的方法引用
(4)方法返回地址:PC寄存器的地址

3.本地方法栈(线程私有):
与Java虚拟机栈比较类似,只不过Java虚拟机栈是给Java和jvm使用的,而本地方法栈是给本地方法(c/c++)服务的

4.程序计数器:用来记录线程执行的行号(线程私有)
5.元空间(线程共享)(JDK1.8)、方法区(JDK1.7)使用永久代实现,
JDK1.7的时候的方法区包含有 运行时常量信息,字符串常量池,类的元信息。。
元空间(JDK1.8):本地内存,并且将字符串常量池移动到堆里面
移动到本地内存优点:它的大小就不受JVM最大内存制约了。

堆划分
(1)新生代:第一次创建的对象都会分配到此区域
(2)老年代:经历了一定的垃圾回收之后,依然存活下来的对象会移动到老年代;大对象在创建的时候会直接进入老年代
HotSpot 默认的执行次数是15,经历15GC就会从新生代转移到老年代。

为什么大对象在创建的时候会直接进入老年代?
:核心原因是因为大对象的初始化比较耗时,如果频繁的创建和销毁会带来一定的性能开销,因此最好的实现方式是将他储存在GC频率更低的老年代。

新生代区域划分:
Eden:80%内存
S0:10%内存<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值