Меня всегда интересовало, как наиболее эффективно создать String в Java.Под этим я подразумеваю строки, значения которых не меняются.
Пример:
String prefix = "Hi, I am ";
Значение prefix
не изменится, но постфикс может быть.
Я не хочу делать переменную prefix
a static final
, поскольку она всегда будет оставаться активной в JVM, даже если класс используется редко ... бла бла.
и когда я делаю следующее:
String fullWord = ("Hi, I am "+_postFix);
Я предполагаю, что значение "Hi, I am"
String останется в пуле Java String, и у меня нет«накладные расходы» объявления префикса как переменной.
То есть мой вопрос сводится к следующему:
Будет ли пул Java String всегдаиспользоваться, когда и когда я не объявляю строковую переменную с помощью ключевого слова new
?
Лучше ли объявлять строковую переменную перед ее использованием?
Как работает пул строк?Обнаруживает ли JVM, что часто используется одно и то же строковое значение, и продолжает ссылаться на эту строку в памяти JVM?