摘要: 预热: 字节码文件 表可以想象成数组 字节码文件的结构 u表示一个字节,一个字节表示两位十六进制数。 举例: 下面用该文件举例说明: 魔数: 文件版本号 常量池 常量池计数器 用字节码查看器可互证 常量池表: 字面量和符号引号: 常量池解读: 访问标识 ACC_PUBLIC ACC_SUPER:只要 阅读全文
posted @ 2026-01-28 13:34 dvdhellohaha 阅读(32) 评论(0) 推荐(0)
摘要: 1 垃圾标记 1.2 引用计数算法: 1.2.1 示例 1.2.2 弊端 存在循环引用的问题 1.2 可达性分析算法: GC root包含哪些? 2 GC算法 2.1 标记-清除算法 从gc root遍历所有对象,标记可达对象,即存活对象,然后再遍历所有的对象(过程为下图的蓝色横线),清除垃圾对象。 阅读全文
posted @ 2026-01-27 16:38 dvdhellohaha 阅读(26) 评论(0) 推荐(0)
摘要: 1 堆内存 1.1 栈、堆、方法区的简易关系示例 1.2 堆内存的大小 used‌:表示当前已经使用的堆内存大小 total‌:表示Java虚拟机当前已经分配的可用堆内存大小 ‌max‌:表示Java虚拟机可以分配的最大堆内存大小 每次添加对象时,used 值会增加,表示当前堆中已经被占用的内存变多 阅读全文
posted @ 2025-12-13 12:50 dvdhellohaha 阅读(22) 评论(0) 推荐(0)
摘要: 1 方法区 1.1 方法区、堆、栈的交互示意图 1.2 方法区可设置大小: 在JDK7中使用参数,前面的是初始值,后面是最大指 在JDK8中使用参数,前面的是初始值,后面是最大指 1.3 方法区的内部结构 1.3.1 类信息 枚举类、注解、结构都算是类信息(类型信息) 直接接口是实现的接口,有序表示 阅读全文
posted @ 2025-12-13 12:49 dvdhellohaha 阅读(23) 评论(0) 推荐(0)
摘要: 1. jvm生命周期 2.内存布局: 3. 类的加载过程(生命周期): 加载,链接(验证、准备、解析),初始化,使用,卸载。链接结束后,类已经加载到内存中了,初始化表示类装载到系统中了。 3.1 加载: 方法区和堆区的对象,相互关联(引用) 方法区的是有cpp编写的,java程序员一般不能直接操作, 阅读全文
posted @ 2025-11-24 20:12 dvdhellohaha 阅读(82) 评论(0) 推荐(0)