Если два String
одинаковых на самом деле не идентичны, то почему я могу использовать строки в качестве ключей в HashMap
без использования одного и того же объекта String
?
String s1 = "Test";
String s2 = "Test";
System.out.println(s1 == s2); // should be false
System.out.println(s1.equals(s2)); // should be true
HashMap<String, String> map = new HashMap();
map.put(s1, "foo");
System.out.println(map.get(s2)); // should be "foo"--but why?
HashMap
имеет какое-то особое поведение для String
объектов?Если нет, то почему можно использовать две «разные» строки для ввода и получения значений из хеша?