이세개발
article thumbnail

1. 데이터 타입 분류

 

프로그램이 하는 일은 결국 데이터를 처리하는 것이다. 따라서 데이터를 얼마나 잘 다루느냐가 좋은 프로그램을 작성할수 있는 관건이 된다. 데이터를 잘 다루기 위해서는 자바에서 지원하는 데이터 타입에 대해서 제대로 이해 할 필요가 있다.  자바의 데이터 타입에는 크게 기본 타입(원시 타입: primitive type) 과 참조 타입(reference type) 으로 분류된다. 기본 타입이란 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말한다. 지금까지 우리는 기본 타입으로 변수를 선언하고 데이터를 저장하는 연습을 했다. 이번 장 부터는 참조 타입에 중점을 두려고 한다. 참조 타입이란 객체(Object)의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말한다.

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

 

---------------------------------------------------------------------------------------------------------------------------------

기본 타입 변수                          참조 변수

실제값                                     100번지        ------->          100번지 = 객체

---------------------------------------------------------------------------------------------------------------------------------

 

예를들어 int와 double로 선언된 변수 age 와 price가 있고, String 클래스로 선언된 name과 hobby가 다음과 같이 선언되어 있다고 가정해보자.

 

--------------------------------------------------------------------------------------------------------------------------------------

[ 기본 타입 변수 ]

int age = 25;

double price = 100.5;

 

[ 참조 타입 변수 ]

String name = "정한교";

String hobby = "독서";

------------------------------------------------------------------------------------------------------------------------------------------

 

메모리상에서 이 변수들이 갖는 값을 그림으로 표현하면 다음과 같다. 자바에서 사용하는 메모리 영역에 대해서는 조금 후 학습하기로 하고, 지금은 변수가 스택영역에 생성되고 객체는 힘 영역에 생성된다는 것만 알아두자.

 

int와 double 변수인 age와 price는 직접 값을 저장하고 있지만, String 클래스 변수인 name과 hobby는 힙 영역의 String 객체 주소 값을 가지고 있다. 주소를 통해 객체를 참조한다는 뜻에서 String 클래스 변수를 참조 타입 변수라고 한다.

profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!