Распределение стеков Java вручную
Так что я относительно новичок в Java, и просто прочитал эту действительно интересную статью в Википедии об анализе побега. Однако единственный раз, когда упоминается, что используется выделение стека, это когда объект не экранирует вызов метода. Это кажется несколько ограниченным; но опять же, я не могу думать ни о каком другом времени, когда я хотел бы, чтобы объект был выделен в стеке. Вот мне и интересно
1) Есть ли другой момент, когда имеет смысл размещать объект в стеке?
2) Есть ли способ вручную разместить объект в стеке, а не в куче?
2.5) Если есть, то будет ли это быстрее (для объектов, которые не экранируют метод), вместо того, чтобы анализ сброса должен был это выяснить? Или есть какой-нибудь способ сказать Java что-то вроде: "В этом методе мне нужно, чтобы каждый объект был в куче, не пытайтесь выяснить, может ли он быть в стеке"?
Спасибо!
1 ответ
- Да. При необходимости. Вы знакомы с рекурсией? Если нет, см. 1.
- новая строка ("Foo")
2,5... что? Почему вы пытаетесь оптимизировать фазу компиляции таким образом? Какой смысл?