"안녕, 아미고!"
" 오늘은 오토박싱 에 대해 말씀드리겠습니다 .
"Java에는 기본 유형뿐만 아니라 Object 클래스를 상속하는 유형이 있다는 것을 기억할 것입니다. 그러나 컬렉션 및 제네릭과 같은 편리한 기능은 Object를 상속하는 유형에서만 작동합니다."
"그런 다음 모든 기본 유형의 기본이 아닌 상대를 만들기로 결정했습니다."
원시 유형 | 기본이 아닌 상대 |
---|---|
바이트 | 바이트 |
짧은 | 짧은 |
정수 | 정수 |
긴 | 긴 |
뜨다 | 뜨다 |
더블 | 더블 |
부울 | 부울 |
숯 | 성격 |
무효의 | 무효의 |
"하지만 항상 이러한 유형 간에 변환하는 것은 매우 불편합니다."
int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();
"특히 컬렉션으로 직접 작업할 때:"
예
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
list.add( new Integer(i));
}
"그래서 Java 제작자가 원시 유형의 «오토박싱»을 발명하고 비원시 유형에 대한 '언박싱'을 발명했습니다."
"작동 방식은 다음과 같습니다.
당신이 보는 것 | 실제로 일어나는 일 |
---|---|
|
|
|
|
|
|
|
|
"모두 간단합니다. int 및 Integer 유형을 서로 할당할 수 있으며 컴파일러가 다른 모든 것을 처리합니다."
"매우 편리합니다."
"네. 하지만 뉘앙스가 있으니 나중에 얘기하겠습니다."
GO TO FULL VERSION