String 인스턴스에 대하여

// 안좋은 예 - 호출될 때마다 인스턴스 새로 생성
String s = new String("bad example");
// 하나의 String 인스턴스 사용
String s = "good example";

비싼 객체 와 캐싱

값비싼 객체를 재사용해 성능을 개선해보자!

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();
    }
}

오토 박싱(auto boxing)

public class Sum {
    private static long sum() {
        Long sum = 0L;
        for (long i = 0; i <= Integer.MAX_VALUE; i++) {
            sum += i;
        }
        return sum;
    }
}