6. 필요없는 객체 생성 비추천
당연히 한상 new로 새로 만드는것보다 재사용하는게 좋기 때문에 객체가 immutable하다면 항상 다시쓸 수 있다
- String instance를 계속 생성 -> 하나만 사용
String s = new String("bikini"); -> String s = "bikini";
- static factory method 사용
Boolean(String) -> Boolena.valueof(String)
- library 잘 알고 사용하기
- String.matches 를 보면 Pattern.comile 을 호출하면서 새로운 instance를 생성해 사용한다.
당연히 재사용하지 않고 매번 새로운 instance 를 생성하게 된다.
그래서 Strign.matche는 반복되는 경우 사용하는게 좋지 않다.
public class RomanNumerals { 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).matches(); } }
- String.matches 를 보면 Pattern.comile 을 호출하면서 새로운 instance를 생성해 사용한다.
당연히 재사용하지 않고 매번 새로운 instance 를 생성하게 된다.
그래서 Strign.matche는 반복되는 경우 사용하는게 좋지 않다.
Comments