Я знаю, что во время компиляции, когда создается String
, эта строка будет строкой, используемой всеми объектами этой конкретной подписи.
String s = "foo";
<- Любые другие идентичные строки будут просто ссылками на этот объект. </p>
Применимо ли это к строкам, созданным во время выполнения методов? У меня есть некоторый код, где объект содержит кусок строковых данных. Оригинальный код - что-то вроде
for(datum :data){
String a = datum.getD(); //getD is not doing anything but returning a field
StringBuffer toAppend = new StringBuffer(a).append(stuff).toString();
someData = someObject.getMethod(a);
//do stuff
}
Поскольку String
уже был создан в data
, кажется, лучше просто вызывать datum.getD()
вместо создания строки на каждой итерации цикла.
Разве что-то мне не хватает?