자바에서는 변수선언 시 변수의 타입, 즉 데이터타입을 지정해주어야한다. 또한 return이 존재하는 메서드의 경우 해당 리턴값의 데이터타입을 메서드 정의부에 명시해주어여한다. 이렇게 데이터타입은 프로그래밍에서 막중한 역할을 하는 변수와 메서드에 영향력을 끼친다. 이처럼 중요한 자바 데이터타입에는 어떠한 것들이 있고 어떻게 사용해야하는지 알아보자.
데이터타입이란?
데이터타입(변수타입)은 말 그대로 데이터의 유형을 말하며, 이러한 데이터타입은 자바에서 변수 선언 시, 함수 정의 시 명시하여 데이터의 유형을 명시적으로 결정한다.
자바에서 변수는 타입을 미리 지정하기 때문에 자바를 정적 타입 언어라고 하며, 자바스크립트와 같이 변수에 타입이 없는 언어는 동적 타입 언어라고 한다.
기본형과 참조형
데이터타입은 크게 기본형과 참조형으로 나눌 수 있다. 기본형의 변수는 실제 값을 저장하는 반면, 참조형의 변수는 어떤 값이 저장되어 있는 메모리 주소를 값으로 가진다. 자바는 C언어와 다르게 참조형 변수간의 연산이 불가하여 실제 연산에 사용되는 것은 모두 기본형 변수이다.
각 데이터타입의 특징은 다음과 같다.
기본형
기본형은 primitive type이라고도 하며, 4가지 형태의 총 8개 타입이 존재한다.
- 논리형
- boolean
true와 false 중 하나를 값으로 가지며, 조건식과 논리적 계산에 사용된다. 그리고 기본형과는 다르게 연산이 불가능하다.
- boolean
- 문자형
- char
문자를 저장하는데 사용되며, 변수에 하나의 문자만을 저장할 수 있다. 또한 char는 문자를 내부적으로 정수(유니코드)로 저장하기 때문에 정수형과 별 다르지않으며, 정수형 또는 실수형과 연산 가능하다.
- char
- 정수형
- byte
이진 데이터를 다룰 때 사용된다. - short
C언어와의 호환을 위해 추가되었다. - int
정수형 데이터를 저장할 때 주로 사용된다. - long
int 자료형 범위보다 높은 정수 자료형을 저장할 때 사용한다.
- byte
- 실수형
- float
실수를 저장하는데 사용된다. - double
보다 높은 실수를 저장할 때 주로 사용된다.
- float
기본형 데이터타입에서 boolean을 제외한 나머지 기본형 데이터들은 서로 연산과 변환이 가능하다. 그리고 정수타입중 가장 많이 쓰는 자료형은 위와 같이 int라고 언급하였는데, 이유는 CPU가 가장 효율적으로 처리할 수 있는 타입이기 때문이다. 만약 효율적인 실행보다 메모리를 절약하고자 한다면 byte 또는 short를 사용하길 바란다.
참조형
참조형은 reference type이라고도 하며 기본형 이외의 나머지 타입을 의미한다. 참조형 변수 객체의 주소를 저장하며, 선언 시 변수의 타입으로 클래스의 이름을 사용하므로 클래스명이 변수의 참조형 데이터타입이 된다. 때문에 만약 새로운 클래스파일을 작성한다면 이것은 새로운 참조형 데이터타입을 추가하는 것이나 다름없다.
참조형 변수의 선언 및 초기화 예시는 다음과 같다.
Test b = new Test(); // 참조형 Test로 b 변수 선언 및 Test객체를 생성하여 b의 값을 생성객체 주소로 초기화
추가적으로 참조형 데이터타입을 가진 변수는 null과 객체주소를 값으로 가질 수 있고 JVM이 32bit라면 4byte를, 64bit이라면 8byte 크기를 가진다.
읽어주셔서 감사합니다. 😊
참고:
자바의 정석 - 남궁성
'JAVA' 카테고리의 다른 글
JAVA / 캐스팅(형변환)이란? (0) | 2020.03.30 |
---|---|
JAVA / 상수와 리터럴 (0) | 2020.03.27 |
JAVA / 변수란 (0) | 2020.03.23 |
JAVA / JDK & JRE & JVM (0) | 2020.03.20 |
JAVA / 자바란? (0) | 2020.03.17 |