文章目录
慕课网JVM视频
1. 字节码执行引擎工作概览
2. 栈帧
2.1 栈帧概述和概念结构
2.2 局部变量表
2.2.1 局部变量表分配规则
- 如果是静态方法,没有指向
this
的位
2.2.2 局部变量表回收机制
slot
是可以复用的
- 初始有6MB可用
- 创建2MB的数组后,还剩4MB左右空间可用
- 主动触发
gc
,发现没有回收创建数组的空间
- 但是如果再定义一个变量,再触发
gc
发现,内存被回收了
- 原因是,由于
slot
的复用机制,当slot槽位
没有被覆盖时,一直存在,就会指向堆空间,垃圾回收器不会去收集,只有被覆盖了,原有的栈中的变量不存在,就不会指向堆空间,对应的堆空间就会被回收 - 或者是显示将数组变量赋值位null,表明可以被回收
2.3 操作数栈
- 栈的加载过程
2.4 动态连接
2.5 方法返回地址
- 方法执行后返回的地址
2.6 方法调用
3. 分派
3.1 静态分派
- 测试
3.2 动态分派
- 测试
3.3 单分派和多分派