Value Classes 仍需要编译器同情

Value Classes Still Need Compiler Sympathy

JEP 401 作为 Valhalla 项目的里程碑,已在 JDK 28 中以预览功能形式集成。虽然 Value Classes 能显著提升语义表达能力并优化 JVM 性能,但盲目地将所有类都改为 Value Classes 并非良策。文章通过三个实例深入剖析:不可变性如何促成扁平化存储、去除身份标识如何消除分配开销,以及类型擦除在泛型虚拟调用中如何导致性能回退。作者强调,Value Classes 并非魔法,JVM 在不同场景下可能需要在扁平化表示和引用表示之间进行转换,理解这些底层机制对于编写高效代码至关重要。

我希望 Value Classes 不仅仅是魔法,今天我将展示 JVM 目前的能力及其局限性。

同日更多故事

2026-08-26