Вызов равен на строковом литерале

Я просто немного прибирался в своем коде, и была эта часть:

String saving = getValue();
if(saving != null && saving.equals("true")){
   // do something
}

Тогда я подумал сделать это наоборот, чтобы избавиться от проверки наnull:

if("true".equals(saving)){
   // do something
}

Это определенно работает, ноэто безопасно сделать это? Я имею в виду строковые литералы хранятся в общем пуле, в то время как строковый объект создаетсяnew находятся в куче. Но строки в постоянном пуле также являются объектами, верно?

Но все же это не кажется правильным, хотя делает код короче.

Ответы на вопрос(9)

Ваш ответ на вопрос