初始JVM架构

文章介绍了Jvm的基础知识,包括内存分配、垃圾回收(GC)的双亲委派机制以及分代收集策略。在分代收集理论中,对象被分为容易回收的年轻代和难以回收的老年代。为优化跨代引用的问题,引入了记忆集合来标记老年代中存在跨代引用的部分,降低扫描成本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jvm 的基础

解码:

内存分配:

GC:

双亲委派机制:

public Launcher() {
    // 首先加载 ExtClassLoader
    ClassLoader extcl;
    try {
        extcl = ExtClassLoader.getExtClassLoader();
    } catch (IOException e) {
        throw new InternalError(
            "Could not create extension class loader", e);
    }

    // 首先加载 AppClassLoader
    try {
        loader = AppClassLoader.getAppClassLoader(extcl);
    } catch (IOException e) {
        throw new InternalError(
            "Could not create application class loader", e);
    }
}

分代收集:理论

强分代:对象是朝生夕灭的。

弱分代:熬过越多次垃圾收集的过程的对象就越难以消亡。

所以他会将容易回收的对象放到一堆里,不容易回收的放到一堆里,从而在回收的时候在容易回收的对象中可以重点关注一下,而不容易的回收的对象就少关注一些,这样就能以低代价进行回收。

Java的虚拟机垃圾回收的实现里出现了,年轻代,老年代的概念。

所以新生代里放的都是些容易回收的对象,在新生代中回收不掉的放到老年代里面。

因为老年代里的对象一直回收不掉,他还会引用新生代的里面的对象,导致新生代里的对象也回收不掉,就跨代引用了,跨代引用,他就会遍历一次老年代里的对象,这增加了负担。

所以为了减少去扫描老年代,我就弄一个记忆集合,他把老年代分成小块结构,标记一下那一块的老年代里有跨代,这样就少遍历老年代里的对象。

这对象也跟着就进老年堆了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值