Список не в каком-то определенном порядке и все происходит от правил, применяемых такими инструментами качества кода, как CheckStyle , FindBugs и PMD .
  Вот так! 
 
  Отформатируйте исходный код и упорядочите импорт в Eclipse: 
Eclipse предоставляет возможность автоматического форматирования исходного кода и организации импорта (тем самым удаляя неиспользуемые). Вы можете использовать следующие сочетания клавиш для вызова этих функций.
- Ctrl + Shift + F — форматирует исходный код.
 - Ctrl + Shift + O — организует импорт и удаляет неиспользованные.
 
Вместо того чтобы вручную вызывать эти две функции, вы можете настроить Eclipse на автоматическое форматирование и автоматическую организацию при сохранении файла. Для этого в Eclipse перейдите в « Окно» -> «Настройки» -> «Java» -> «Редактор» -> «Сохранить действия», а затем включите « Выполнить выбранные действия при сохранении» и установите флажок « Форматировать исходный код» + « Организовать импорт» . Избегайте множественных возвратов (точек выхода) в методах:
В ваших методах убедитесь, что у вас есть только одна точка выхода . Не используйте возвраты более чем в одном месте в теле метода.
Например, приведенный ниже код НЕ РЕКОМЕНДУЕТСЯ, поскольку он имеет более одной точки выхода (операторы возврата).
| 
 1 
2 
3 
4 
5 
6 
7 
 | 
private boolean isEligible(int age){  if(age > 18){    return true;  }else{    return false;  }} | 
Приведенный выше код можно переписать следующим образом (конечно, приведенный ниже код еще можно улучшить, но это будет позже).
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
private boolean isEligible(int age){  boolean result;  if(age > 18){    result = true;  }else{    result = false;  }  return result;} | 
 
  Упростите методы if-else: 
Мы пишем несколько служебных методов, которые принимают параметр, проверяют некоторые условия и возвращают значение, основанное на условии. Например, рассмотрим метод isElitable, который вы только что видели в предыдущем пункте.
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
private boolean isEligible(int age){  boolean result;  if(age > 18){    result = true;  }else{    result = false;  }  return result;} | 
Весь метод может быть переписан в виде одного оператора возврата, как показано ниже.
| 
 1 
2 
3 
 | 
private boolean isEligible(int age){  return age > 18;} | 
 
  Не создавайте новые экземпляры Boolean, Integer или String: 
 Избегайте создания новых экземпляров Boolean, Integer, String и т. Д. Например, вместо использования new Boolean(true) , используйте Boolean.valueOf(true) .  Более поздний оператор имеет тот же эффект, что и предыдущий, но он улучшил производительность. 
 
  Используйте фигурные скобки вокруг операторов блока. 
Никогда не забывайте использовать фигурные скобки вокруг операторов уровня блока, например if , for , while . Это уменьшает неоднозначность вашего кода и исключает вероятность появления новой ошибки при изменении оператора уровня блока.
НЕ РЕКОМЕНДУЕТСЯ
| 
 1 
2 
3 
4 
 | 
if(age > 18)  result = true;else  result = false; | 
РЕКОМЕНДУЕМЫЕ
| 
 1 
2 
3 
4 
5 
 | 
if(age > 18){  result = true;}else{  result = false;} | 
 
  Отметьте параметры метода как окончательные, где это применимо: 
Всегда помечайте параметры метода как окончательные, где это применимо. Если вы сделаете это, когда вы случайно измените значение параметра, вы получите предупреждение компилятора. Кроме того, это заставляет компилятор оптимизировать байт-код в лучшую сторону.
РЕКОМЕНДУЕМЫЕ
| 
 1 
 | 
private boolean isEligible(final int age){ ... } | 
 
  Назовите открытые статические конечные поля в UPPERCASE: 
Всегда называйте открытые статические конечные поля (также известные как константы ) в UPPERCASE. Это позволяет легко отличать постоянные поля от локальных переменных.
  НЕ РЕКОМЕНДУЕТСЯ 
 public static final String testAccountNo = '12345678'; 
  РЕКОМЕНДУЕМЫЕ 
 public static final String TEST_ACCOUNT_NO = '12345678';  , 
Объедините несколько операторов if в одно:
Везде, где возможно, попытайтесь объединить несколько операторов if в один.
Например, приведенный ниже код;
| 
 1 
2 
3 
4 
5 
 | 
if(age > 18){  if( voted == false){    // eligible to vote.  }} | 
может быть объединен в отдельные операторы if , как:
| 
 1 
2 
3 
 | 
if(age > 18 && !voted){  // eligible to vote} | 
 
  переключатель должен иметь значение по умолчанию : 
  Всегда добавляйте регистр по умолчанию для операторов switch . 
 
  Избегайте дублирования строковых литералов, вместо этого создайте константу: 
Если вам нужно использовать строку в нескольких местах, не используйте ее как литерал. Вместо этого создайте строковую константу и используйте ее.
Например, из приведенного ниже кода,
| 
 1 
2 
3 
4 
5 
6 
 | 
private void someMethod(){  logger.log('My Application' + e);  ....  ....  logger.log('My Application' + f);} | 
Строковый литерал «My Application» можно сделать константой и использовать в коде.
| 
 1 
2 
3 
4 
5 
6 
7 
8 
 | 
public static final String MY_APP = 'My Application';private void someMethod(){  logger.log(MY_APP + e);  ....  ....  logger.log(MY_APP + f);} | 
 
  Дополнительные ресурсы: 
- Сборник лучших практик Java .
 - Список доступных проверок Checkstyle .
 - Список наборов правил PMD
 
Ссылка: Общие нарушения кода в Java от нашего партнера JCG Веры Сундар в блоге