java开发校招面试题,Java架构之道-对象的创建和内存分配,多线程高并发

本文探讨了Java对象在JVM中的创建和内存分配,重点讲述了Minor GC和Major GC的区别,以及对象如何从新生代晋升到老年代。讨论了大对象直接进入老年代的机制、对象年龄和动态年龄判断,还提到了老年代空间分配担保机制。此外,文章还分享了作者的Java学习资源和并发编程的学习建议。
摘要由CSDN通过智能技术生成

在大多数情况下,对象会在新生代的Eden区分配,当 Eden 区没有足够空间进行分配时,虚拟机将发起一次Minor GC。

Minor GC/Young GC:指发生新生代的的垃圾收集动作,Minor GC非常频繁,回收速度一般也比较快。

Major GC/Full GC:一般会回收老年代 ,年轻代,方法区的垃圾,Major GC的速度一般会比Minor GC的慢10倍以上

大量的对象被分配在eden区,eden区满了后会触发minor gc,大多数对象会成为垃圾被回收掉,剩余存活的对象会被挪到为空的那块survivor区,下一次eden区满了后又会触发minor gc,把eden区和survivor区垃圾对象回 收,把剩余存活的对象一次性挪动到另外一块为空的survivor区,因为新生代的对象都是朝生夕死的,存活时间很短,所 以JVM默认的8:1:1的比例是很合适的,让eden区尽量的大,survivor区够用即可。

JVM默认有这个参数**-XX:+UseAdaptiveSizePolicy**(默认开启),会导致这个8:1:1比例自动变化,如果不想这个比例有变 化可以设置参数**-XX:-UseAdaptiveSizePolicy**

(3)大对象直接进入老年代

大对象就是需要大量连续内存空间的对象(比如:字符串、数组)。通过JVM参数 -XX:PretenureSizeThreshold 可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值