java原理/jvm/基础篇 - 文章目录

up

返回上级

java原理/jvm 上一级目录
md

垃圾回收算法

评价标准 1.堆内存使用效率 2.STW时间 3.执行业务代码时间占比 why 1.标记清除: 产生内存碎片, 遍历堆速度慢. 2.标记复制 3.标记压缩 ===== 4.分代GC GC类型指清理类型:会用可达性分析类型 新生代寿命短,复制消耗不高, 因此复制算法 老年代空间大对象多寿命长, 复制成本高 Key: TLAB:线程本地堆

#基础篇
md

类的生命周期

阶段 加载,连接(验证,准备,解析),初始化, 使用,卸载 加载 1.类加载器获取字节码信息 2.加载完类后, jvm将字节码信息放在方法区(Metaspace/永久代) 3.生成InstanceKlass对象 保存各种信息 4.提供class对象 (便于利用反射) ============== ============== 连接 验证: 1.cafebab

#基础篇
md

垃圾回收器

组合 parNew 复制多线程 Serial: 复制 SerialOld: 标记整理 CMS: Concurrent 同时发生, 只清除不整理, 因此想要分配对象(连续空间)就得连续空间,需要调用SerialOld帮忙整理出来 执行步骤 吞吐量 && 停顿时间 吞吐量= app/(app+gcTime) G1垃圾回收器: G1 本质是 分区

#基础篇
md

类加载器

Why Bootstrap 让bootstrap加载自己写的jar包,1.放进lib 2.添加vm参数 Extension : /jre/lib/ext Application: classpath Extension:参数添加,要防止覆盖!! 双亲委派机制:谁来加载类 1.确保加载的安全 2.避免重复 执行: 向上传递,加载过直接返回. 都没加载过(Cla

#基础篇
md

运行时数据区 - 程序计数器

1.what 记录下一天字节码指令的地址 问

#基础篇
md

存 slot有限因此复用, {}完即完 Slot

#基础篇
md

方法区

方法区 存储类的元信息 运行时常量池: 直接通过内存地址访问 符号引用到内存引用 在加载和链接阶段完成 建议

#基础篇
md

JVM 基础篇拾遗

[方法区的回收](fragment295487e3) [堆](fragment33efa58) [直接内存](fragment5375ad21) [图解](fragment738d21cd) [总结](fragment738e3520)

#基础篇
md

ShouldKnow

1.InstanceKlass(binary) && Class

#基础篇