powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / static final String vs String performance
7 сообщений из 7, страница 1 из 1
static final String vs String performance
    #39584737
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
static final String имеет преимущество в производительности перед обычным String? Считал что static final String объявляется и инициализируется раз и остается в памяти JVM всегда единым экземпляром, потому приложению нет необходимости каждый раз инициализировать переменную при обращении к ней, что еще больше должно проявляться в многопоточном программировании (том же веб контейнере).
...
Рейтинг: 0 / 0
static final String vs String performance
    #39584739
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK1988...каждый раз инициализировать переменную при обращении к ней...Это что же за переменные такие, которые при каждом обращении инициализируются?

static final String имеет преимущество в производительности перед обычным String?
IMHO на уровне погрешности измерения.

Возможно преимущество в каких-то отдельных случаях, т.к. у JIT компилятора может быть больше свободы по оптимизации кода использующих фактически константы (static final)

IMHO & AFAIK
...
Рейтинг: 0 / 0
static final String vs String performance
    #39584790
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK1988и остается в памяти JVM всегда единым экземпляром
Очень много заблуждений. Во-первых не всегда единым. Никто не мешает ту же строку собрать из внешних данных и получить другой экземпляр.
Во-вторых наличие лишних перманентных объектов в куче, например, негативно сказывается на производительность некоторых типов GC.

Если интересно разобраться - гуглите статьи про JVM string intern
https://shipilev.net/jvm-anatomy-park/10-string-intern/
...
Рейтинг: 0 / 0
static final String vs String performance
    #39584886
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В ADF конструкция static final применяется повсеместно при создании Entity, потому даже не не сомневался в правильности подобной рациональности, про единость екземпляра имел ввиду одно приложение на одну jvm.
...
Рейтинг: 0 / 0
static final String vs String performance
    #39584889
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
static final String vs String performance
    #39585308
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK1988,
Код: java
1.
2.
3.
4.
public static final String s = "xxx";
puclic void xxx(){ //lotta calling
    String s = "xxx";
}


В теории переменная внутри метода создастся много раз, на практике оптимизатор вынесет ее из метода.

В любом случае если значение является константой то самое место ему в константах
...
Рейтинг: 0 / 0
static final String vs String performance
    #39585345
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artasВ теории переменная внутри метода создастся много раз

Мы же с объектом не путаем? Переменной называем адрес объекта на стэке. Так?
artas, на практике оптимизатор вынесет ее из метода.

Переменную s? Вынесет куда?
artasВ любом случае если значение является константой то самое место ему в константах
А что же говорит документация по этому поводу?
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#intern() All literal strings and string-valued constant expressions are interned. String literals are defined in section 3.10.5 of the The Java™ Language Specification.
Нет выходит никаких "оптимизаций на практике"?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / static final String vs String performance
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]