чем разница (память-накрест) междуJVM строки, хранящиеся в памяти
private static final String FAILURE_MESSAGE= "...";
protected String getFailedMsg() {
return FAILURE_MESSAGE;
}
И
protected String getFailedMsg() {
return "...";
}
Предполагая, что FAILURE_MESSAGE
только ссылки из приведенной выше функции.
Я имею в виду, где и как хранятся вышеуказанные объекты/строки в памяти в вышеуказанных случаях? Является ли это JVM конкретным?
Редактировать: Я знаю, что строка интернирована в первом подходе, но где это значение сохраняется/удерживается/(интернировано?) Во втором подходе до вызова функции?
Second edit as afterthought - что, если строки заменены на int или какой-либо другой класс, который не является строкой?
Вы хотите вернуть {START_MESSAGE}? Вы вернули {FAILURE_MESSAGE}. – sgowd
@ sans481 - спасибо, глупая ошибка копирования папок ... – Vic
Стоит отметить, что все вы, литералы String '' ... "' будут ссылаться на один и тот же экземпляр в памяти. – Kamran