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

String s = new String("bikini");
String s = "bikini";

생성자 대신 정적 팩터리 메서드를 제공하는 불변 클래스에서는 정적 팩터리 메서드를 사용해서 불필요한 객체 생성을 피할 수 있다!

ex) 정규표현식을 이용하여 주어진 문자열이 유효한 로마 숫자인지 확인하는 메서드

static boolean isRomanNumeral(final String s) {
    return s.matches("^(?=.)M*(C[MD]|D?C{0,3})"
            + "(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$");
}