Как известно, метод String().intern()
добавляет значение String в пул строк, если он еще не существует. Если существует, он возвращает ссылку на это значение/объект.Как работает String.intern() и как это влияет на пул строк?
String str = "Cat"; // creates new object in string pool with same character sequence.
String st1 = "Cat"; // has same reference of object in pool, just created in case of 'str'
str == str1 //that's returns true
String test = new String("dog");
test.intern();// what this line of code do behind the scene
мне нужно знать, когда я называю test.intern()
, что этот метод стажер будет делать?
добавить «собаку» с другой ссылкой в пуле строк или добавить test
ссылку на объект в пуле строк (я думаю, это не так)?
Я попытался это
String test1 = "dog";
test == test1 // returns false
Я просто хочу, чтобы убедиться, когда я называю test.intern()
он создает новый объект с тем же значением в Струнный пуле? теперь у меня есть 2 объекта со значением «собака». один существует непосредственно в куче, а другой - в String?
'ул == // Обл, что возвращает true' опечатка? – jhamon
жаль, что это должно быть str == str1. позвольте мне изменить свой вопрос. –
Возможный дубликат [Хорошо ли использовать java.lang.String.intern()?] (Http://stackoverflow.com/questions/1091045/is-it-good-practice-to-use-java-lang -string-intern) –