Даже опытные разработчики Java допускают ошибки. В этой статье рассматриваются 10 распространенных ошибок Java с примерами. Вы увидите реальный код, позволяющий избежать этих ошибок.

Эти ошибки могут случиться с каждым, от небольших ошибок до больших проблем. Читайте дальше, чтобы улучшить свои навыки работы с Java и предотвратить эти проблемы.

1、Не освобождать ресурсы в блоке Final

try {
  // use resources
} catch (Exception e) {
  // handle error
}
// forgot to release resources in finally

Всегда освобождайте выделенные ресурсы, такие как соединения, потоки и т. д., в блокеfinally.

2、Неправильное использование областей действия и потокобезопасности переменных

// Bad scope and thread safety
public class DataProcessor {
  private static int count;
  
  public void process() {
    // count is shared and unthreadsafe
    count++; 
  }
}

Используйте потокобезопасные классы или синхронизируйте доступ к общему изменяемому состоянию.

3、Неправильное клонирование объекта

User user = new User();
User copy = user; // Shallow copy

При клонировании объектов отдавайте предпочтение конструкторам клонирования/копирования, а не поверхностным копиям.

4、Возможность сериализации

public class User implements Serializable {
  private transient int id;
  
  private String username;
  private String password; // security risk
}

5、Перехват общих исключений

try {
  // read file
} catch (Exception e) { // loses stack trace  
  throw new RuntimeException(e);
}

Перехватывайте только определенные типы исключений, избегайте общих блоков перехвата.

6、Вызов нефинальных методов в конструкторе

public class User {
  private int id;
  
  public User() {
    init(); // bug prone
  }
  
  public void init() {
    id = 1; 
  } 
}

Вызывайте только конечные методы из конструкторов, чтобы избежать ошибок.

7. Игнорирование улучшений Java 8.

// Old style
List<String> names = new ArrayList();
for(String name : names) {
  // iterate 
}

// Java 8 
names.forEach(name -> {…