Java

데이터 타입 분류

딩신 2018. 1. 31. 21:10


Java에서는 데이터 타입을 크게 기본 타입과 참조 타입으로 나눈다.


기본 타입은 이전 글에서 보았던 것처럼 원시 타입이라고도 부르며,

정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말한다.


기본 타입 : byte, char, short, int, long, float, double, boolean


참조 타입이란 객체(Object)의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말한다.


참조 타입에 대해선 다른 글에서 설명하도록 하겠다. 이 글에서 중점적으로 봐야할 것은 기본 타입과 참조 타입의 차이이다.


기본 타입으로 선언된 변수와 참조 타입으로 선언된 변수의 차이점은 저장되는 값이 무엇이냐이다. 기본 타입인 byte, char, short, int, long, float, double, boolean을 이용해서 선언된 변수는 실제 값을 변수 안에 저장하지만, 참조 타입인 배열, 열거, 클래스, 인터페이스를 이용해서 선언된 메모리의 번지를 값으로 갖는다. 번지를 통해 객체를 참조한다는 뜻에서 참조 타입이라고 부른다.[각주:1]


여기에서 주목해야 하는 것은 '번지를 통해' Java는 참조 타입의 값을 알아낸다는 것이다. 


번지는 무엇일까? 

번지가 왜 있는걸까? 


그것은 우리 뇌도 대뇌, 간뇌 등으로 나눠져있듯이 컴퓨터도 여러 개의 메모리 영역이 존재하기 때문이다.


JVM은 3개의 메모리 영억을 가지고 있다. 그리고 그 안에서 변수와 객체를 저장하는 공간은 다른 메모리 영역을 사용하기 때문에, 다른 메모리 영역에서 객체를 빨리 찾기 위해 그 객체의 위치(번지 수)를 저장해 놓는 것이다.


Java의 메모리 사용영역에 대해선 다음 글에서 서술하도록 하겠다.

  1. 신용권, 이것이 자바다, 한빛미디어 [본문으로]