Просмотр стека Java - PullRequest
       6

Просмотр стека Java

7 голосов
/ 21 апреля 2011

Привет всем, что-то интересует Java Stacks.Возвращает ли peek () ссылку на фактический объект на вершине стека или копию объекта?Например, если бы я запустил следующий код:

Stack.peek().setName("name");

Это изменило бы поле name объекта, находящегося в настоящее время на вершине стека, или к совершенно другому объекту с идентичнымзначения для всех его полей?

Ответы [ 4 ]

8 голосов
/ 21 апреля 2011

В целом, очень мало битов кода в Java вращаются произвольно, создавая копии объектов. peek вернет ссылку , которая находится на вершине стека ... не забывайте, что объекты не находятся в стеке в первую очередь, только ссылки .

Итак, в вашем примере вы действительно изменили бы имя объекта, на который ссылается ссылка в стеке.

8 голосов
/ 21 апреля 2011

Так как peek возвращает ссылку на объект, он будет изменен.

2 голосов
/ 21 апреля 2011

Определенно ссылка. Это изменит имя.

1 голос
/ 21 апреля 2011

В http://download.oracle.com/javase/6/docs/api/java/util/Stack.html Я не вижу доказательств того, почему он вернул бы копию, поэтому я действительно думаю, что это изменит оригинал

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