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

Какие способы позволяют экономить память

  1. Примитивные типы вместо объектов
    Используй int вместо Integer, double вместо Double и т.д., чтобы избежать накладных расходов на объекты.

  2. String Pool и intern()
    Строки из пула (String s = "text") не создают новых объектов. Метод intern() добавляет строку в пул, если её там нет.

  3. Flyweight Pattern
    Разделяй общие состояния объектов, чтобы уменьшить дублирование. Например, кэширование часто используемых объектов.

  1. Использование ArrayList вместо LinkedList
    ArrayList экономит память за счёт непрерывного хранения данных, в отличие от LinkedList, который хранит ссылки на узлы.

  2. Очистка ссылок и WeakReference
    Удаляй ненужные ссылки (list = null) и используй WeakReference для кэшей, чтобы GC мог освободить память.

  3. Stream API и ленивые вычисления
    Обрабатывай данные потоково, без загрузки всего набора в память.

Пример:

java
// Плохо: создаёт лишний объект
Integer sum = new Integer(10);  

// Лучше: использует примитив
int sum = 10;  

// Оптимизация строк
String s1 = "text";  // Использует пул
String s2 = new String("text").intern();  // Добавляет в пул
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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