2장 객체 생성과 파괴
아이템 6. 불필요한 객체 생성을 피하라
생성자 대신 정적 팩토리 메서드를 사용해 불필요한 객체 생성 회피 가능
Boolean(String); // java 9에서 사장
Boolean.valueOf(String);
캐싱하여 재사용을 통해 성능 개선
static boolean isRomanNumeral(String s) { return s.matches("^(?=.)M*(C[MD]|D?C{0,3})" + "(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$") }
public class RomanNumerals { private static final Pattern ROMAN = Pattern.compile( "^(?=.)M*(C[MD]|D?C{0,3})" + "(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$" ); static boolean isRomanNumeral(String s) { return ROMAN.matcher(s).matchers(); } }
의도치 않은 오토박싱 회피
TODO
- 정규표현식
- 유한 상태 머신
- 지연 초기화
- 어댑터 : 실제 작업은 뒷단 객체에 위임하고, 자신은 제2의 인터페이스 역할을 해주는 객체
- 방어적 복사
'Java > OOP' 카테고리의 다른 글
[Effective Java] 2장. 아이템5 (0) | 2022.07.17 |
---|---|
[Effective Java] 2장. 아이템4 (0) | 2022.07.16 |
[Effective Java] 2장. 아이템3 (0) | 2022.07.16 |
[Effective Java] 2장. 아이템2 (0) | 2022.07.15 |
[Effective Java] 2장. 아이템1 (0) | 2022.07.14 |