[Java] Primitive type vs Reference type

Primitive type vs Reference type




Primitive type

Java에는 타입을 크게 두가지로 나눌 수 있습니다. 그 중에 딱 8가지 타입(int, char, boolean, byte, long, short, float, double)이 속하는 primitive타입은 직접 값을 저장합니다.

stack영역에 저장되고 참조형이 아니기때문에 null을 넣을 수 없습니다. null을 넣고싶다면 wrapper class로 만들어줘야합니다.





Reference type

Java에서 위에 8가지 primitive type을 제외한 모든 타입(사용자 정의 클래스, array, interfeace...)이 reference type에 속합니다. 실제 값은 heap영역에 저장되며 그 주소가 stack영역에 변수에 저장됩니다. 즉 변수자체에는 값이 아니라 주소가 저장됩니다.

따라서 ==연산(변수의 값비교)을 할 경우 같은 값이라고 true가 나오는게 아니어서 equals()를 이용해야합니다.





예제

int num = 3;  // primitive type 
List<Integer> arr = new ArrayList<>(Arrays.asList(2,3,4)); // reference type

좋은 웹페이지 즐겨찾기