tonykang22 / study

0 stars 0 forks source link

[Effective Java] 아이템 6. 불필요한 객체 생성을 피하라. #39

Open tonykang22 opened 2 years ago

tonykang22 commented 2 years ago

아이템 6. 불필요한 객체 생성을 피하라

e.g. 동일한 일을 하는 녀석임에도 불구하고 사용할 때마다 객체를 생성하는 경우


예시 코드

문자열


Auto Boxing

JVM이 runtime에 자동으로 진행

public class Sum {
    private static long sum() {
        // Long을 primitive type의 long을 사용하면 불필요한 객체 생성을 피할 수 있다.
        Long sum = 0L;
        for (long i = 0; i <= Integer.MAX_VALUE; i++)
            sum += i;
        return sum;
    }

    public static void main(String[] args) {
        long start = System.nanoTime();
        long x = sum();
        long end = System.nanoTime();
        System.out.println((end - start) / 1_000_000. + " ms.");
        System.out.println(x);
    }
}


완전 공략


사용 자제 API (Deprecation)

클라이언트가 사용하지 않길 바라는 코드가 있다면...


정규 표현식

내부적으로 Pattern이 쓰이는 곳에 사용할 수 있다.


가비지 컬렉션

개념은 명확하게 알되, 더 깊게 공부할 필요가 있을 때 무얼 보아야할지 알아야한다.