Это касается не только Android, но и Java.
Когда вы пишете "xxxx"
, это буквальная строка.Это строковый экземпляр.Обратите внимание, что все литеральные строки с одинаковым значением являются одним и тем же экземпляром.Подробности см. В методе String.intern()
.
Пример:
String s1 = "abc";
String s2 = "abc";
, в этом примере s1 == s2
имеет значение true.
new String("xxx")
- конструктор копирования.Вы берете одну строку (литерал) и создаете из нее новый экземпляр.Поскольку все строки являются неизменяемыми, это обычно то, что вы не хотите делать.
Пример:
String s1 = "abc";
String s2 = new String("abc");
s1.equals(s2)
верно
s1 == s2
неверно