TGViewer
Java Learning Java Learning @java_per_month · 16.6K subscribers
Post #3253 2.5K
❓ Вопрос на собеседовании

Как работает JVM String Deduplication, и как оно оптимизирует использование памяти?

Ответ ⬇️
JVM String Deduplication — это механизм, появившийся в Java 8 (с G1 GC), который позволяет JVM автоматически находить и переиспользовать одинаковые строки в памяти. Это особенно полезно в приложениях с большим количеством повторяющихся строк, таких как веб-серверы или системы логирования.

Обычно, даже если строки идентичны, они хранятся как отдельные объекты в куче. Deduplication позволяет JVM находить дубликаты и заменять их ссылками на уже существующие строки, уменьшая потребление памяти.


Пример использования ⚙️
import java.util.ArrayList;
import java.util.List;

public class StringDeduplicationExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();

for (int i = 0; i < 1_000_000; i++) {
list.add(("String_" + (i % 100)).intern()); // Используем String.intern() для принудительного объединения
}

System.out.println("Генерация завершена");
}
}


Java Learning 👩‍💻
  • 👍 10
  • 🔥 1
More from @java_per_month
  1. Oct 6, 2026🤺 Почему ты получаешь отказ после «норм собеса»? Дело не в знаниях — ты просто не знаешь,…
  2. Oct 6, 2026⚙️ Set.retainAll() В Java метод Set.retainAll() позволяет оставить только те элементы множ…
  3. Sep 14, 2026❓ Вопрос на собеседовании Что такое ForkJoinPool в Java, как он работает, и как его исполь…
  4. Sep 4, 2026⚙️ List.subList() В Java метод subList() позволяет создать представление части списка. Это…
  5. Sep 1, 2026🔴 Завтра тестовое собеседование с Java-разработчиком 2 сентября(уже завтра!) в 19:00 по м…
  6. Aug 17, 2026➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений Quarkus — оптимизированный фре…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →