0

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

1) 是否有任何其他时间将对象分配到堆栈是有意义的?
2)有没有办法手动将对象分配给堆栈,而不是堆?
2.5)如果有,这样做会更快吗(对于不逃避该方法的对象),而不是必须通过逃避分析来解决这个问题?或者有什么方法可以告诉 Java 类似“在这种方法中,我需要每个对象都在堆上,不要费心去查看是否有任何对象可以在堆栈上”?

谢谢!

4

1 回答 1

1
  1. Yes. If appropriate. Are you familiar with Recursion? If not, see 1.
  2. new String("Foo")

2.5... What? Why are you trying to optimize the compile phase like that? What is the point?

于 2013-12-03T03:57:11.750 回答