English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 예제를 통해 Java 자동 박싱과 언박싱을 배웁니다.
제가자동 박싱 중Java 컴파일러는 자동으로 원시 타입을 그에 상응하는 웨이버러 클래스 객체로 변환합니다. 예를 들어,
int a = 56; // 자동 박싱 Integer aObj = a;
Java 컬렉션을 사용할 때자동 박싱빠른 장점이 있습니다.
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); //자동 박싱 list.add(5); list.add(6); System.out.println("ArrayList: " + list); } }
출력 결과
ArrayList: [5, 6]
위의 예제에서는 Integer 타입의 배열 목록을 생성했습니다. 따라서 배열 목록은 Integer 타입의 객체만 포함할 수 있습니다.
이 줄을 주목하십시오
list.add(5);
여기서는 원시 타입 값을 전달합니다. 그러나,자동 박싱원시 값은 자동으로 Integer 객체로 변환되어 배열 목록에 저장됩니다.
제가언박싱 중Java 컴파일러는 자동으로 웨이버러 클래스 객체를 그에 상응하는 원시 타입으로 변환합니다. 예를 들어,
// 자동 박싱 Integer aObj = 56; // 해박싱 int a = aObj;
와 같이자동박싱와 같이해박싱Java 콜렉션과 함께 사용할 수도 있습니다.
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); //자동 박싱 list.add(5); list.add(6); System.out.println("ArrayList: " + list); // 해박싱 int a = list.get(0); System.out.println("인덱스 0에 있는 값: " + a); } }
출력 결과
ArrayList: [5, 6] 인덱스 0에 있는 값: 5
위의 예제에서 다음과 같은 행을 주목하세요:
int a = list.get(0);
여기서 get() 메서드는 인덱스 0에 있는 객체를 반환합니다. 하지만,해박싱,객체가 자동으로 원시 타입 int로 변환되어 변수 a에 할당됩니다。