开篇:Java 程序运行时,内存里发生了什么?
想象你走进一栋办公大楼。
前台(程序计数器)记录着每位员工当前在哪一层办公;每个员工有自己的工位隔间(虚拟机栈),桌上摆着正在处理的文件,文件处理完就扔掉,绝不会跟别人共用桌面;会议室(堆)是公共空间,所有人都可以把资料放进去,但需要有保洁阿姨(GC)定期清理过期资料;档案室(方法区)保存着公司的制度文件、组织架构图和公章——这些东西很少变动,但偶尔也会更新;大楼旁边还有一间直通外部仓库的快递收发室(直接内存),不走大楼内部的电梯系统,速度更快但需要你自己签收和归还。
大约 31 分钟