Junior — Middle
117
Java'da String sinfi daxilindəki daxili sinif internin rolu və məqsədini izah edə bilərsinizmi?
AI-dan cavab
sobes.tech Süni İntellekt
В Java класс String имеет метод intern(), который связан с пулом строк (string pool). Внутренний класс intern обычно не является частью стандартного API, но концептуально intern отвечает за хранение уникальных экземпляров строк в пуле.
Когда вызывается метод intern() у строки, JVM проверяет, есть ли в пуле строка с таким же содержимым:
- Если есть — возвращает ссылку на эту строку из пула.
- Если нет — добавляет текущую строку в пул и возвращает ссылку на неё.
Это позволяет экономить память и ускорять сравнение строк (сравнение ссылок вместо содержимого).
Пример:
String s1 = new String("hello");
String s2 = s1.intern();
String s3 = "hello";
System.out.println(s2 == s3); // true, потому что s2 и s3 ссылаются на одну строку из пула
Таким образом, intern помогает управлять строками, обеспечивая уникальность и оптимизацию памяти.