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

Где может теряться производительность

  1. Некорректные коллекции: Использование ArrayList для частых вставок/удалений в середину вместо LinkedList.
  2. Строки в циклах: Конкатенация строк через + в цикле — лучше StringBuilder.
java
String result = "";
for (int i = 0; i < 1000; i++) {
    result += i; // Плохо — создаёт новые объекты
}
  1. Отсутствие кэширования: Повторные вычисления или запросы без кэша (например, HashMap для мемоизации).
  2. Синхронизация: Избыточный synchronized или volatile там, где можно обойтись локальными переменными.
  3. Ненужные объекты: Создание объектов в цикле (например, new Date()), когда можно переиспользовать.
  4. I/O операции: Чтение/запись без буферизации (BufferedReader, BufferedWriter).
  5. Алгоритмическая сложность: O(n²) вместо O(n log n) (например, вложенные циклы для сортировки).
  6. Reflection: Чрезмерное использование Reflection — медленнее прямых вызовов.
  7. GC Overhead: Частые создания/удаления объектов, вызывающие сборку мусора.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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