728x90
아이템 6. 불필요한 객체 생성을 피하라
핵심정리
문자열
- 사실 동일한 객체라서 매번 새로 만들 필요가 없다.
- new String(”java”)를 사용하지 않고 문자열 리터럴 (”java”)를 사용해 기존에 동일한 문자열을 재사용하는 것이 좋다.
- jvm 에서 문자열을 다 풀에서 캐싱을 하고 있다. 해시맵에 한 번 만들어진 문자열들을 담아놓고, 동일한 문자열을 참조하려고 하면 이미 만들어 놓은 상수들의 풀에서 동일한 문자열을 참조하는 방법으로 재사용한다.
- 그래서 new String() 은 사용하지 않는게 좋다.
정규식, Pattern
- 생성 비용이 비싼 객체라서 반복해서 생성하기 보다, 캐싱하여 재사용하는 것이 좋다.
오토박싱 (auto boxing)
- 기본 타입(int)을 그것에 상응하는 박싱된 기본 타입(Integer)으로 상호 변환해주는 기술.
- 기본 타입과 박싱된 기본 타입을 섞어서 사용하면 변환하는 과정에서 불필요한 객체가 생성될 수 있다.
객체 생성은 비싸니 피하라 는 뜻으로 오해하면 안된다.
'Java' 카테고리의 다른 글
[이펙티브자바] 아이템7. 다 쓴 객체 참조를 해제하라. (0) | 2023.05.10 |
---|---|
[이펙티브자바] 완벽공략 18. 가비지 컬렉션 (0) | 2023.05.09 |
[이펙티브자바] 아이템4. 인스턴스화를 막으려거든 private 생성자를 사용하라 (0) | 2023.04.21 |
[Java] JVM 과 구조 (0) | 2022.06.17 |