기본형의 한계
자바가 제공하는 기본 래퍼 클래스의 특징
equals
로 비교해야 한다래퍼 클래스 생성 - 박싱(Boxing)
new Integer(10)
은 직접 사용하면 안된다. 작동은 하지만, 향후 자바에서 제거될 예정Integer.valueOf(10)
를 사용
new Integer(10)
을 사용해서 객체를 생성하고 돌려준다Integer.valueOf()
에는 성능 최적화 기능이 있다. 개발자들이 일반적으로 자주 사용하는 -128 ~ 127 범위의 Integer
클래스를 미리 생성해준다. 해당 범위의 값을 조회하면 미리 생성된 Integer
객체를 반환한다. 해당 범위의 값이 없으면 new Integer()
를 호출
래퍼 클래스는 객체를 그대로 출력해도 내부에 있는 값을 문자로 출력하도록 toString()
을 재정의했다
Integer boxedValue = value; //오토 박싱(Auto-boxing)
Integer boxedValue = Integer.valueOf(value); //컴파일 단계에서 추가
int unboxedValue = boxedValue; //오토 언박싱(Auto-Unboxing)
int unboxedValue = boxedValue.intValue(); //컴파일 단계에서 추가