это мой код.
Код: Выделить всё
public class StringCompare {
public static void main(String[] args) {
String s1 = "apple";
String s2 = "apple";
String s3 = new String("apple");
boolean b1 = (s1 == s2);
boolean b2 = (s1 == s3);
boolean b3 = s1.equals(s2);
System.out.println(b1); // true
System.out.println(b2); // false
System.out.println(b3); // true
System.out.println("");
System.out.println("Address of s1 = " + Integer.toHexString(s1.hashCode())); // 58b835a
System.out.println("Address of s2 = " + Integer.toHexString(s2.hashCode())); // 58b835a
System.out.println("Address of s3 = " + Integer.toHexString(s3.hashCode())); // 58b835a
}
}
Я думаю, что адрес объекта(ов3) не равен s1, s2.
но..
результатом является адрес объект(s1, s2, s3) тот же.

Я не знаю, почему адреса s1, s2, s3 одинаковы..
Пожалуйста, дайте мне несколько советов.
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/265 ... ct-in-java
Мобильная версия