Java手动堆栈分配

时间:2013-12-03 03:53:19

标签: java memory-management escape-analysis

所以我对Java比较陌生,只读了this非常有趣的关于逃逸分析的维基百科文章。但是,它唯一一次提到使用堆栈分配的时候是对象没有转义方法调用。这似乎有点受限;但话说回来,我想不出任何其他时间我想要一个分配给堆栈的对象。所以我想知道:

1)还有其他时间将对象分配到堆栈是否有意义? 2)有没有办法手动将对象分配给堆栈,而不是堆?
2.5)如果有,那么这样做会更快(对于没有逃避该方法的对象),而不是让逃逸分析必须弄清楚吗?或者有没有办法告诉Java类似“在这种方法中,我需要每个对象都在堆上,不要试图查看是否有任何可以在堆栈上”?

谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 是。如果合适的话。你熟悉递归吗?如果没有,请参阅1.
  2. new String(“Foo”)
  3. 2.5 ......什么?你为什么要这样优化编译阶段?有什么意义?