Chapter 02 변수(Varialbe)
2. 변수의 타입
주로 사용하는 값(data)의 종류(type)는 크게 '문자와 숫자'로 나눌 수 있으며, 숫자는 다시 '정수와 실수'로 나눌 수 있다.
이러한 값의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이 자료형(data type)이다.
자료형에는 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 등이 있으며 변수를 선어할 때는 저장하려는 값의 특성을 고려하여 가장 알맞는 자료형을 변수의 타입으로 선택하면 된다.
자료형은 크게 '기본형'과 '참조형' 두 가지로 나눌 수 있는데, 기본형 변수는 실제 값(data)을 저장하는 반면, 참조형 변수는 어떤 값이 저장되어 있는 주소(memory address)를 값으로 갖는다.
자바는 C언어와 달리 참조형 변수 간의 연산을 할 수 없으므로 실제 연산에 사용되는 것은 모두 기본형 변수이다.
기본형(primitive type)
- 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) ➡️ 모두 8개
- 계산을 위한 실제 값을 저장한다.
참조형(reference type)
- 객체의 주소를 저장한다.
- 8개의 기본형을 제외한 나머지 타입.
참조형 변수(또는 참조변수)를 선언할 때는 클래스의 이름을 변수의 타입으로 사용하므로 클래스의 이름이 참조변수의 타입이 된다.
클래스이름 변수이름; // 변수의 타입이 기본형이 아닌 것들은 모두 참조변수이다.
아래는 Date클래스 타입의 참조변수 today
를 선언하는 코드이다.
Date today = new Date(); // Date객체를 생성해서, 그 주소를 today에 저장
참조변수는 null 또는 객체의 주소를 값으로 갖으며 참조변수 초기화는 위처럼 하면 된다.
객체를 생성하는 연산자 new
의 결과는 생성된 객체의 주소이다. 이 주소가 대입연산자'='에 의해서 참조변수 today
에 저장되는 것이다. 이제 참조변수 today
를 통해서 생성된 객체를 사용할 수 있게 된다.
❗ 기본형은 저장할 값(data)의 종류에 따라 구분되므로 기본형의 종류를 얘기할 때는 '자료형(data type)'이라는 용어를 쓴다.
그러나 참조형은 항상 '객체의 주소(4 byte 정수)'를 저장하므로 값(data)이 아닌 객체의 종류에 의해 구분되므로 참조형 변수의 종류를 구분할 때는 '타입(type)'이라는 용어를 사용한다.
'타입(type)'이 '자료형(data type)'을 포함하는 넓은 의미의 용어다.
참조형 변수는 null 또는 객체의 주소(4 byte, OxO~OxFFFFFFFF)를 값으로 갖는다.
단, JVM이 32 bit가 아닌 64 bit라면 참조형 변수의 크기는 8 byte가 된다.
📑 원본 자료
- Java의 정석(3판) [남궁 성/도우출판/2016]