Primitive Type은 자바에서 제공하는 미리 정의 된 데이터 유형으로 8가지가 있다.
byte, short, int, long, float, double, boolean, char
실제 값 만을 저장하는 공간으로 스택 메모리 영역에 저장된다.
기본값이 있기에 Null이 존재하지 않는다.
Wrapper Class는 Primitive Type을 형변환하는데 사용하는 Class이다.
원천타입의 자료형을 Class화 한것이다.
int - Integer
byte - Byte
char - Character
double - Double
float - Float
long - Long
short - Short
원시 타입을 객체로 변환한다는 것은 객체가 되었을때 가지는 특징을 사용하기 위해 필요하다는 것이다.

Primitive type을 wrapper class로 형변환 하는 것을 'Boxing'한다고 부른다. '상자에 넣는다'는 뜻으로 int의 원시타입을 Integer 객체로 만든다는 뜻이다.
반대로 객체화된 Wrapper Class를 원시화 시키는것을 'UnBxoing'한다고 한다.
그렇기에 Wrapper Class를 "Boxed Primitive Type"이라고 칭하기도 한다.
Auto Boxing과 Auto UnBoxing은 자동적으로 박싱과 언박싱을 해준다는 의미다.
예를 들어서
int a = 10;
Integer wrapper_a = new Integer(a);
이렇게 int형 a와 Integer로 박싱된 wrapper_a가 있다고 하자
아래 코드의 결과는 어떻게 될까?
System.out.println(a == wrapper_a);
두개는 엄밀히 다른건데..false가 나와야 하지 않을까?
결과는 true다.
왜냐하면 자바 내에서 자동으로 UnBoxing을 해줬기 때문에 두개의 값을 비교해서 true가 나온것이다.
이러한 이유로 Wrapper Class는 Call by Value로 작동한다고 한다.
이와 관련된 내용은 추후에 보강할 예정..
참고 링크 2
https://jminc00.tistory.com/13