Встречается на собеседованиях • сегодня

Где могут храниться строки в памяти в Java

В Java строки могут храниться в нескольких областях памяти:

  1. String Pool (Heap) – при создании строки через литерал (String s = "hello") она попадает в пул строк, который находится в heap. Пул оптимизирует хранение, избегая дублирования.
  1. Heap (вне пула) – при создании через new String("hello") или динамической конкатенации создаётся новый объект вне пула, даже если такая строка уже есть в пуле.

  2. Metaspace (до Java 8 – PermGen) – хранятся intern-строки (вызванные через intern()), а также строковые константы из класса (если они были заинтернированы JVM).

Пример:

java
String a = "hello";       // String Pool
String b = new String("hello");  // Heap
String c = b.intern();    // Вернёт ссылку на "hello" из String Pool
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы