int, Integer 차이는 무엇인가
int 는 변수의 타입(data type) 이다. 여기서 변수는 값을 저장할 수 있는 메모리 상의 공간이다.
int a = 3; 에서 a는 변수명이다. int는 변수의 타입( data type = 자료형) 이다
(즉 자료형은 data의 type에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것)
자료형에는 기본형(primitive type)과 참조형(reference type)으로 나뉜다.
위 그림은 기본형 자료이다.
Integer은 int를 객체로 다루기 위해 사용하는 클래스로 래퍼클래스(wrapper class)라고 부른다.
차이점 정리
int : 자료형(primitive type)
- 산술 연산 가능함
- null로 초기화 불가
Integer : 래퍼클래스(Wrapper class)
-Unboxing 하지 않을 시 산술 연산 불가능
-null값 처리 가능
boxing : primitive type -> wrapper class 변환 (int to Integer)
unboxing: wrapper class -> primitive type 변환 ( Integer to int)
자바에서는 int to Integer을 할때 valueof() 또는 Integer() 생성자와 같은 메서드를 제공함
int a = 10;
Integer i = new Integer(a); // Integer 생성자를 사용하여 Int를 정수로 변환
int a = 10;
Integer i = a; // Autoboxing (오토박싱은 기본 유형이 암시적으로 객체로 변환되는 기술, 추가 코드 작성 필요 x)
int a = 10;
Integer i = Integer.valueOf(a); // Intger 클래스의 valueOf() 메소드를 사용하여 Int 원시 인수를 취하고 Integer 객테를 리턴함
변환이 잘 되었는지는 Object 클래스의 getClass() 메소드를 사용하여 확인 할 수 있다.
int a = 10;
Integer i = Integer.valueOf(a);
System.out.println(i.getClass());
System.out.println(i.getClass().getSimpleName());
출력 시
class java.lang. Integer
Integer
'항해 시절' 카테고리의 다른 글
CORS란 무엇인가 (항해 5주차 회고록) (0) | 2022.07.02 |
---|---|
ORM,SQL,MVC란 무엇인가 (항해 4주차 회고록) (0) | 2022.07.02 |
DI,IoC, Bean란 무엇인가 (항해 3주차 회고록) (0) | 2022.07.02 |
객체지향프로그램, JVM이란 무엇인가 (항해 2주차 회고록) (0) | 2022.07.02 |
JWT, API 란 무엇인가 (항해5기 1주차 회고록) (0) | 2022.07.02 |