Skip to content

Latest commit

 

History

History
8 lines (6 loc) · 1.13 KB

item6.md

File metadata and controls

8 lines (6 loc) · 1.13 KB

아이템 6. 불필요한 객체 생성을 피하라

똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 편이 나을 때가 많다. 특히 불변 객체(아이템 17)는 언제든 재사용할 수 있다.

  • 생성 비용이 비싼 객체가 반복해서 필요하다면 캐싱하여 재사용하자
  • 메서드가 처음 호출될 때 필드를 초기화하는 지연 초기화(아이템 83)로 불필요한 초기화를 없앨 수는 있지만, 권하지는 않는다. 지연 초기화는 코드를 복잡하게 만드는데, 성능은 크게 개선되지 않을 때가 많기 때문이다(아이템 67).
  • 박싱된 기본 타입보다는 기본 타입을 사용하고, 의도치 않은 오토박싱이 숨어들지 않도록 주의하자. (오토박싱을 하면서 불필요한 인스턴스를 만들게 되는 경우가 있다)
  • 자체 객체 풀은 코드를 헷갈리게 만들고 메모리 사용량을 늘리고 성능을 떨어뜨린다. 요즘 JVM의 가비지 컬렉터는 상당히 잘 최적화되어서 가벼운 객체용을 다룰 때는 직접 만든 객체 풀보다 훨씬 빠르다.