2.3.1 数值类型与引用类型


文档摘要

2.3.1 数值类型与引用类型 在开始之前,请允许我抛出一个看似简单却足以撕裂初学者认知的问题:当你写下 和 ,这两个赋值操作——在内存中究竟发生了什么?不是“栈存值、堆存引用”这样教科书式的模糊断言,而是字节对齐如何决定 int 的存储边界,对象头(Object Header)里那 12 字节究竟由哪三块组成、每块如何被 JVM 动态填充,String 实例的 hash 字段为何在首次调用 前为 0 而非未初始化状态,以及——最关键的一点——为什么 返回的两个引用可以 ,而 却不行?答案不在语言规范里,而在 HotSpot VM 的 中一段被注释掉的 判断逻辑背后。 这不是类型系统的哲学讨论,这是一场内存布局、编译器优化、运行时缓存策略与垃圾回收器协同机制共同谱写的底层协奏曲。


发布者: 作者: 转发
评论区 (0)
U