JVM 执行此操作。在适当的情况下,它实际上可以完全删除分配。
引用这篇文章。
Java 语言没有提供任何方法来显式地在堆栈上分配对象,但是这一事实并不妨碍 JVM 在适当的情况下仍然使用堆栈分配。JVM 可以使用一种称为逃逸分析的技术,通过该技术,它们可以判断某些对象在其整个生命周期内都被限制在单个线程中,并且该生命周期受给定堆栈帧的生命周期的限制。这样的对象可以安全地分配在堆栈上而不是堆上。更好的是,对于小对象,JVM 可以完全优化分配,只需将对象的字段提升到寄存器中。
更多信息来自维基百科的逃逸分析。