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

Как уменьшить память на машине

  1. Оптимизация объектов: Используйте примитивные типы вместо оберток (int вместо Integer), избегайте создания лишних объектов, переиспользуйте существующие.

  2. Кэширование: Применяйте пулы объектов (например, String.intern() для строк), но осторожно, чтобы не перегрузить PermGen/Metaspace.

  3. Сборка мусора: Настройте GC под ваши нужды (G1GC, ZGC для больших heap), уменьшайте размер young/old поколений при необходимости.

  1. Профилирование: Используйте VisualVM, YourKit или JProfiler для поиска утечек памяти и тяжелых объектов.

  2. Структуры данных: Выбирайте оптимальные - ArrayList вместо LinkedList для частого доступа, EnumSet для перечислений.

Пример оптимизации:

java
// Плохо - создает новый объект при каждом вызове
String fullName = firstName + " " + lastName;

// Лучше - использует StringBuilder
String fullName = new StringBuilder()
    .append(firstName)
    .append(" ")
    .append(lastName)
    .toString();
  1. Ограничьте коллекции: Устанавливайте initialCapacity, используйте weak/soft ссылки при необходимости.

  2. Off-heap память: Для больших данных рассмотрите ByteBuffer или библиотеки типа ChronicleMap.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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