Java의 Auto Boxing/Unboxing
JDK 5.0에 도입된 자동 boxing 및 unboxing을 통해 기본 유형과 해당 래퍼 간의 원활한 변환이 가능합니다. 수업. 간단해 보이지만 이러한 변환이 발생하는 방식에는 복잡함이 있습니다.
자동 박싱
자동 박싱은 생성자를 사용하는 대신 valueOf() 메서드를 사용합니다. 래퍼 클래스. 이 메소드는 기본 값을 매개변수로 사용하고 해당 래퍼 객체를 반환합니다. 예:
int intValue = 0; Integer intObject = Integer.valueOf(intValue); // Calls Integer.valueOf(0)
valueOf()를 사용하면 캐싱이 가능해 각 박싱 작업에 대해 새 객체가 생성되는 것을 방지할 수 있습니다.
자동 언박싱
반대로 Unboxing은 래퍼 클래스의 intValue()(또는 해당 메서드)를 사용하여 객체에서 기본 값을 추출합니다. 이 메소드는 래퍼 객체 내에 저장된 기본 값을 반환합니다. 예:
Integer intObject = new Integer(0); int intValue = intObject.intValue(); // Calls intObject.intValue()
특정 예
제공된 예는 Integer 생성자가 int 매개변수만 허용하기 때문에 int-to-Integer 박싱만 허용된다는 것을 보여줍니다. 다른 기본 유형의 경우 valueOf()를 사용해야 합니다.
마찬가지로 래퍼 개체를 바이트 또는 짧은 단위로 unboxing하면 오류가 발생합니다. 이는 intValue()가 int 값을 byte나 short가 아닌 int로 직접 변환하기 때문입니다.
결론
자동 박싱 및 언박싱에는 valueOf( ) 및 해당 메소드를 사용하여 기본 유형과 래퍼 클래스 간에 각각 변환합니다. 이 메커니즘은 코드 가독성을 높이고 작업을 단순화하여 효율적이고 우아한 코드를 촉진합니다.
위 내용은 Java에서 자동 박싱 및 언박싱은 어떻게 작동하며, 구현 시 미묘한 차이는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!