■ Java Autoboxing vs Unboxing |
안녕하세요. 제임스 입니다.
자바 개발중 별로 중요하게 생각지 못하거나 왜 그런지 모르고 개발 하는 것들 중 한가지가 Wrapper Classes 와 primitive data type 사이에 이루어 지고 있는 자동 변환 기능을 Autoboxing 과 Unboxing 이라 부르고 있습니다.
이번에는 이 Autoboxing 과 Unboxing 에 대해 정리해보겠습니다.
Autoboxing은 자바 컴파일러가 primitive data type 을 그에 상응하는 wrapper class 로 자동 변환 시켜 주는 것을 의미 합니다. 예를 들면 int 를 Integer 로, double 을 Double 로 변환 시키는 것들을 의미 합니다.
1 2 3 4 5 6 7 8 | public static void main(String[] args) { char ch = 'j'; autoBoxing(ch); } public static void autoBoxing(Character chr){ System.out.println("autoboxing test result : chr = ["+chr+"]"); } | cs |
autoBoxing 함수의 인자 값은 Character 형을 받는 것으로 정의 되어 있지만 실제로 입력한 값은 char 형입니다. 입력 된 primitive data type 인 char 를 Java compiler 가 자동으로 wrapper class 인 Character 형으로 변환 시켜 줬습니다.
실행 결과는 아래와 같습니다.
autoboxing test result : chr = [j]
1 2 3 4 5 6 7 8 | public static void main(String[] args) { int i = 7; autoBoxing(i); } public static void autoBoxing(Integer I){ System.out.println("autoboxing test result : Integer I = ["+I+"]"); } | cs |
위 코드는 int 를 Integer 로 변환 시키는 예제 입니다.
실행 결과는 아래와 같습니다.
autoboxing test result : Integer I = [7]
Unboxing은 자바 컴파일러가 wrapper class 를 primitive data type 으로 자동 변환 시켜 주는 것을 말합니다.
1 2 3 4 5 6 7 8 | public static void main(String[] args) { Character chr = new Character('c'); unBoxing(chr); } public static void unBoxing(char ch){ System.out.println("unboxing test result : chr = ["+ch+"]"); } | cs |
unBoxing 함수의 인자 값은 char 형으로 정의 되어 있지만 실제 함수 호출 시 입력된 값은 wrapper class 인 Character 입니다. java compiler 가 wrapper class 인 Character 를 primitive data type 인 char 형으로 변환 시킨 것입니다.
실행 결과는 아래와 같습니다.
unboxing test result : ch = [c]
1 2 3 4 5 6 7 8 | public static void main(String[] args) { Integer i = new Integer(2); unBoxing(i); } public static void unBoxing(int i){ System.out.println("unboxing test result : int i = ["+i+"]"); } | cs |
위 코드는 Integer 를 int 로 변환 시키는 예제 입니다.
실행 결과는 ...
unboxing test result : i = [2]
▼ 도움이 되셨다면 로그인이 필요 없는 ▼
▼ 하트 클릭 한번 부탁 드립니다 ▼
감사합니다 :D
'Java' 카테고리의 다른 글
[ 자바 코딩 ] java Character - isLetter() 함수 (8) | 2018.04.19 |
---|---|
[ 자바 코딩 ] Java Character (9) | 2018.04.18 |
[ 자바 코딩 ] Java Number - log() 함수 & log10() 함수 (8) | 2018.04.16 |
[ 자바 코딩 ] Java Number - exp() 함수 (499) | 2018.04.13 |
[ 자바 코딩 ] Java Number - max() 함수 (500) | 2018.04.12 |