2014-12-30 2 views
1

Я написал этот код в затмении:объект равенства (объект Referece "==")

String[] s = {"a","b"}; String d = "a"; System.out.println(s[0]==d);

и дает "истинное" в качестве выходного сигнала.

«==» проверяет ссылку на объект, если оба объекта относятся к одному и тому же объекту, но здесь в этом случае объект «d» ссылается на разные объекты и «s [0]» на разные, тогда как они равны ,

+0

Сделайте некоторые домашние работы, прежде чем спрашивать. – SMA

+0

@almasshaikh ищут ответ, а не комментарий. –

+0

Ответ лежит в комментарии. ЕСЛИ вы могли бы иметь googled, и у вас было бы выше ссылки, поэтому ваш вопрос отмечен как дубликат. – SMA

ответ

0

"a" будет создан в пуле строк, используемом JVM.

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

Смежные вопросы