Как можно создавать строковые объекты в Java (с помощью следующего кода)

1

Сколько объектов String создается в java по следующему коду: если в пуле строк, содержащем одно и то же значение, нет объекта String. (Я где- то читал, что поскольку мы передаем аргументы как "Hello", который является литералом String, он также создаст еще один объект как "Hello" в пуле строк.)

String s="Hello";
Теги:
string
string-pool

5 ответов

1
Лучший ответ

В пуле константных констант будет создан только один объект. Причина в том, что при создании объекта мы не использовали "новое" ключевое слово.

3

Объект не создается, но значение вставляется в пул строк, если оно вставлено перед

2

Только один строковый литерал будет создан в пуле строк String.

0

Вам нужно различать литералы, которые загружаются в пул строк, когда класс загружается и передается (это ваш случай), и случай создания строкового объекта путем фактического разбора/чтения/построения чего-либо.

Более поздний случай, конечно, гораздо чаще происходит в программах, и он всегда будет генерировать новый объект String (даже если само строковое значение уже находится в пуле строк).

См. Также Будет ли строка, переданная извне приложения Java, сохраняться в пуле строк?

-1

Один String Object (литералы также являются объектами) создается IF "Hello" НЕ уже присутствует в пуле String.

  • 0
    Но это присутствует. Компилятор и загрузчик классов поместили его туда до выполнения инструкции.
  • 0
    @EJP - я сказал, что он будет создан, если его нет. Это означает, что он не будет создан и добавлен в пул строковых констант, если он присутствует

Ещё вопросы

Сообщество Overcoder
Наверх
Меню