✔️ 자바 5부터 도입된 기능으로, 기본 타입과 해당하는 래퍼 클래스 사이의 자동 변환을 지원
Java에서 Integer를 사용할 때 NullPointerException이 발생하지 않는 이유는 자바의 오토박싱과 관련이 있다.
예를 들어, int 값을 Integer 객체에 대입하면 자동으로 int 값이 Integer 객체로 변환된다.
int number = 10;
Integer integer = number; // 오토박싱: int를 Integer로 자동 변환
Integer integer = null;
int value = integer.intValue(); // NullPointerException이 발생하지 않음
이 때, null
을 Integer
에 대입하면 NullPointerException이 발생하지 않는다.
null
은 어떤 객체에 대한 참조가 없음을 나타내는 값으로 간주되며, Integer
변수에 null
을 대입하면 그냥 null
을 가리키는 참조로 설정된다.
null 참조는 객체가 아니기 때문에 객체의 메서드를 호출하려고 할 때 NullPointerException이 발생하지 않는다.
단지 null
을 가리키는 참조로 설정된 Integer 객체의 메서드를 호출하면, 해당 메서드에서 null
에 대한 처리를 담당하는 코드가 내부적으로 구현되어 있기 때문에 NullPointerException이 발생하지 않는다.
Integer로 사용하면 값이 없는 경우에는 null을 전달할 수 있다. 이는 Integer가 참조 타입으로 null을 허용하기 때문이다. 따라서 NullPointerException
이 발생하지 않는다.