Item6
불필요한 객체 생성을 피하라
1 개요
- 똑같은 기능의 객체를 매번 생성하는 것보다 객체 하나를 재사용하는 편이 좋다
- 특히 불변 객체는 언제든 재사용할 수 있다.
2 String
불필요한 객체 생성 방식
String s1 = new String("java");
String s2 = new String("java");
Assertions.assertThat(s1 == s2).isFalse();
java라는 문자열을 매번 새로 생성한다
객체 재사용 방식
String s1 = "java";
String s2 = "java";
Assertions.assertThat(s1 == s2).isTrue();
- **String Constant Pool**을 사용하여
java라는 문자열을 캐싱하여 사용한다. - 즉 똑같은 기능의 객체를 매번 생성하지 않고 객체 하나를 재사용하는 방식
3 불변 클래스와 정적 팩토리 메서드
- 불변 클래스에서 정적 팩터리 메서드를 사용해 불필요한 객체 생성을 피할 수 있다.
불필요한 객체 생성 방식
- 불변 클래스 Integer를 생성자를 통해 인스턴스를 만들면 서로 다른 인스턴스다.
Integer num1 = new Integer(100);
Integer num2 = new Integer(100);
Assertions.assertThat(num1 == num2).isFalse();