Java

[이펙티브자바] 아이템 6. 불필요한 객체 생성을 피하라

yerimkoko 2023. 5. 9. 12:27
728x90

이펙티브자바

 

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

핵심정리

문자열

  • 사실 동일한 객체라서 매번 새로 만들 필요가 없다.
  • new String(”java”)를 사용하지 않고 문자열 리터럴 (”java”)를 사용해 기존에 동일한 문자열을 재사용하는 것이 좋다.
    • jvm 에서 문자열을 다 풀에서 캐싱을 하고 있다. 해시맵에 한 번 만들어진 문자열들을 담아놓고, 동일한 문자열을 참조하려고 하면 이미 만들어 놓은 상수들의 풀에서 동일한 문자열을 참조하는 방법으로 재사용한다.
    • 그래서 new String() 은 사용하지 않는게 좋다.

정규식, Pattern

  • 생성 비용이 비싼 객체라서 반복해서 생성하기 보다, 캐싱하여 재사용하는 것이 좋다.

오토박싱 (auto boxing)

  • 기본 타입(int)을 그것에 상응하는 박싱된 기본 타입(Integer)으로 상호 변환해주는 기술.
  • 기본 타입과 박싱된 기본 타입을 섞어서 사용하면 변환하는 과정에서 불필요한 객체가 생성될 수 있다.

객체 생성은 비싸니 피하라 는 뜻으로 오해하면 안된다.