일반적인 프로그래밍 원칙.

아이템 57. 지역변수의 범위를 최소화하라

// 컬렉션이나 배열을 순회하는 권장 관용구 (for-each)
for (Element e : c) {
  ... //e 로 무언가를 한다.
}

// 반복자가 필요한 경우 (for)
for (Iterator<Element> i = c.iterator(); i.hasNext(); ) {
  ... //e와 i로 무언가를 한다.
}

// 지역변수를 최소화하는 반목분 관용구
for(int i = 0, n = expensiveComputation(); i < n; i++) {
  ... // i로 무언가를 한다.
}

아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라

for (Iterator<Element> i = c.iterator(); i.hasNext();) {
  ...
}

for(int i=0; i < a.length; i++){
  ...
}
for (Element e : elements) {
  ...
}

아이템 59. 라이브러리를 익히고 사용하라

아이템 60. 정확한 답이 필요하다면 float와 double은 피하라

아이템 61. 박싱된 기본 타입보다는 기본 타입을 사용하라

Comparator<Integer> naturalOrder = (i,j) -> (i<j) ? -1 : (i == j ? 0 : 1);

// 잘못동작함
naturalOrder.compose(new Integer(42), new Integer(42));
Comparator<Integer> naturalOrder = (iBoxed, jBoxed) -> {
  // 기본형으로 변환
  int i = iBoxed, j = jBoxed;
  return i < j  ? -1 : (i == j ? 0 : 1);
}

아이템 62. 다른 타입이 적절하다면 문자열 사용을 피하라

String compoundKey = className + "#" + i.next();

아이템 63. 문자열 연결은 느리니 주의하라

아이템 64. 객체는 인터페이스를 사용해 참조하라

// best case
Set<Son> sonSet = new LinkedHashMap<>();

// bad case
LinkedHashMap<Son> sonSet = = new LinkedHashMap<>();

아이템 65. 리플렉션보다는 인터페이스를 사용하라

아이템 66. 네이티브 메서드는 신중히 사용하라

아이템 67. 최적화는 신중히 하라

아이템 68. 일반적으로 통용되는 명명 규칙을 따르라

철자 규칙