똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 것이 좋다.

불필요한 객체 생성을 피하는 예시

  1. String 생성

    String s = new String("bikini"); // 1.잘못된 코드
    String s1 = "bikini"; // 2.개선된 코드 
    
  2. 정적 팩터리 메서드

  3. 정규 표현식

    static boolean isRomanNumeral(String s){
    	return s.matches("정규식");
    }
    
  4. 오토박싱 (auto boxing)

주의점

Map<String, Integer> map = new HashMap<>();
map.put("도끼", 3);
map.put("활",1);

Set<String> set1 = map.keySet();
Set<String> set2 = map.keySet();

set1.remove("도끼");

System.out.println(set1.size()); // 1
System.out.println(set2.size()); // 1 (2라고 생각할 수도!)

→ 주의해서 사용하자!

정리