new String()
создаст новый экземпляр строки объекта с собственным хэш-кодом идентификации. При создании такой строки String string = "myString";
Java будет пытаться повторно использовать эту строку, выполняя поиск уже созданной строки, чтобы найти эту точную строку. Если он найден, он вернет тот же хеш-код этой строки. Это приведет к тому, что если вы создаете, например, хэш-код строки идентификатора, вы получите то же значение.
Пример:
public class Stringtest {
public static void main(String[] args) {
final String s = "myString";
final String s2 = "myString";
final String otherS = new String("myString");
//S and s2 have the same values
System.out.println("s: " + System.identityHashCode(s));
System.out.println("s2: " + System.identityHashCode(s2));
//The varaible otherS gets a new identity hash code
System.out.println("otherS: " + System.identityHashCode(otherS));
}
}
В большинстве случаев вам не нужно создавать новый объект строки, потому что у вас нет статических значений при работе, например, с. HashMap
с или подобные вещи.
Итак, создавайте новые строки с new String
только тогда, когда это действительно необходимо. В основном используйте String yourString = "...";
.