Когда объект объявляется и инициализируется в локальной ссылке, созданной в Java? - PullRequest
1 голос
/ 14 августа 2011

Если у меня есть следующий код:

public class Foo {

   private Object obj = new Object();

   public void bar() {
      final Object obj2 = new Object();
   }
}
  • Правильно ли я заявляю, что при создании нового экземпляра Foo будет создан объект, именуемый obj?

  • Кроме того, будет ли объект, указанный как obj2, загружаться только JVM, когда метод bar помещается в стек (Вызывается)

  • Наконец, локальные переменные живут в стеке, и я тоже правильно говоря, что obj2 будет жить в стеке, в то время как объект, на который он ссылается жить в куче?

1 Ответ

3 голосов
/ 14 августа 2011

Это так.Объекты в области действия метода будут создаваться только при вызове метода, в то время как члены объявленного таким образом класса будут создаваться при создании объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...