본문 바로가기
책/이펙티브 자바 3판

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

by eunyoung 2023. 4. 18.

이펙티브 자바 2장 - 객체의 생성과 파괴

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


 

1. 똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 편이 나을때가 많다.

 

 

2. 똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 편이 나을때가 많다.

 

Boolean(String) 생성자 대신 Boolean.valueOf(String) 팩터리 메서드를 사용하는 것이 좋음.

 

 

3. 생성 비용이 비싼 객체는 캐싱하여 재사용하는 것이 나을때가 많다.

 

이 메서드에서 사용하는 String.matches는 성능이 중요한 상황에서는 사용하기 적합하지 않음.

matches 메서드 안에서 만드는 정규 표현식용 Pattern 인스턴스는 인스턴스 생성 비용이 높음.

따라서 Pattern 인스턴스를 캐싱해두고 사용하면 좋음.

 

 

 

불필요한 객체를 만들어내는 또 다른 예 - 오토 박싱

오토 박싱 : 프로그래머가 기본 타입과 박싱된 기본 타입을 섞어 쓸 때 자동으로 상호 변환해주는 기술

 

 

박싱된 기본 타입보다는 기본 타입을 사용하고, 의도치 않은 오토박싱이 숨어들지 않도록 주의하기

 

자신만의 객체 풀(pool)을 만들지 말자.

요즘 JVM의 가비지 컬렉터는 상당히 잘 최적화되어 있어서 가벼운 객체용을 다룰 때는 직접 만든 객체 풀보다 훨씬 빠르다.