티스토리 뷰

IT/Java

참조 타입

오예봉봉 2020. 5. 13. 01:43

참조 타입 (참조 자료형) 개념


참조 타입(reference data type)이란 object(객체)의 주소(번지)를 참조하는 자료형을 의미한다.

자바의 자료형 ( data type) 은 우선 기본 데이터 타입 (원시 데이터 타입 , primitive data type)과 참조 타입 (reference data type) 으로 분류 된다.

기본 데이터 타입은 다시 정수 , 실수 , 문자 , 논리 형 타입으로 분류한다.

참조 데이터 타입은 다시 class 타입 , 배열 타입 . 열거 타입 인터페이스 타입으로 나누어 진다. 

프로그램의 목적은 데이터 처리를 하여 일정한 결과 값을 산출하는 것이다. 
그러므로 좋은 프로그램이란 데이터 처리의 효율성이 우수해야 한다.
자바에서 효율적인 데이터 처리를 위해선 자바에서 취급하는 데이터를 잘 알고 있어야 할 것이다.


기본 데이터 타입의 변수에는 특정한 값이 저장되어 있다. 
그러나 참조 타입의 변수에는 어떤 값(value)이 아니라 메모리의 주소가 저장되어 있다.

즉 , 기본 자료형인 char , byte , short , int , long , float , double , boolean 타입의 변수에는 실질적인 값이 존재한다. 그러나 열거 , 배열 , class , interface 타입의 참조 타입 변수에는 메모리의 힙(heap)영역의 주소 값이 있다. 그 주소 값을 참조하여서 객체(object) 를 참조한다.

아래 예제를 봅시다.

참조 타입 변수 예제

int length = 100 ;

double weight = 70.5 ;


String man = " 남자 " :

String woman = " 여자 " ;

 

위 예제에서 기본 타입인 int , double 로 선언된 변수 length , weight 가 이고 참조 타입으로 선언된 변수 man , woman 이 있다.

 int 형 변수인 length , double 형 변수인 weight 는 각각 stack 영역 (자바가 사용하는  메모리 영역 중 하나) 에 만들어 진다. 그리고 기본 타입 변수들은 100 , 70.5 와 같은 실제 값을 갖고 있다

 

String 클래스 변수인 man , woman 은 직접 남자 ,여자 라는 값을 갖고 있는 것이 아니다. 그 객체들이 존재하고 있는 메모리의 heap 영역의 주소 값을 갖고 있을 뿐이다.

==연산자 그리고 !=연산자

기본 타입 변수와 참조 타입 변수는 저장된 데이터가 다르다고 했다. 따라서 연산자 중에서 주의 해서 사용해야 될 것이 있다. 그것은 == , != 연산자이다. 이 연산들이 기본 타입 변수에서 사용될 경우는 두 변수의 값이 같은가 아니면 다른가 를 판단하여 준다.

그러나 이 연산자들이 참조 타입 변수에서 이용될 때는 두 변수가 동일한 객체를 참조하는가 아니면 상이한 객체를 참조하는가 판별해준다. 
참조 타입 변수에는 객체가 있는 heap 영역의 주소 값이 존재하므로 두 변수가 동일한 주소를 갖고 있는가 결국 동일 객체를 가리키고 있는가를 ==연산자 와 !=연산자를 이용하면 알 수 있다.


'IT > Java' 카테고리의 다른 글

continue문  (0) 2020.05.11
break문  (0) 2020.05.06
for문  (0) 2020.05.03
do while문  (0) 2020.04.30
while문  (0) 2020.04.28