Какую частую ошибку в Java (или подобных языках) вы стараетесь избегать и почему?

«Какую частую ошибку в Java (или подобных языках) вы стараетесь избегать и почему?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

NullPointerException (NPE) — одна из самых распространённых и проблемных ошибок. Она возникает при попытке вызвать метод или обратиться к полю у объекта, который является null.

Пример возникновения:

String str = null;
int length = str.length(); // Выбрасывает NullPointerException

Почему это плохо: NPE часто происходит во время выполнения, а не компиляции, что усложняет отладку и нарушает работу приложения.

Лучшие практики для предотвращения:

  1. Использовать Optional для явного обозначения возможного отсутствия значения.
  2. Явные проверки: if (obj != null) перед использованием.
  3. Аннотации: Использовать @NonNull/@Nullable (Lombok, JSR-305) для статического анализа.
  4. Валидация аргументов: Objects.requireNonNull(param, "message") в публичных методах.
  5. Project Valhalla (в будущем): Примитивные объекты (value types) могут решить проблему на уровне языка.

Также в разработке важно избегать утечек памяти, состояний гонки (race conditions) в многопоточном коде и «магических чисел» без пояснений.