- 정수 자료형 4개, 실수 자료형 2개, 문자 자료형 1개, 논리 자료형 1개 총 8개의 기본 자료형을 미리 정의하고 제공한다.
- JVM 상에서 구동되는 JAVA의 경우, 운영체제에 따라 자료형의 길이가 변하지 않고, 고정적이다.
- 기본 자료형은 null 값으로 초기화를 할 수 없으며, null로 초기화 하고자 한다면 참조 자료형(기본 자료형의 Wrapper Class)을 이용하여야 한다.
- 기본 자료형은 메모리의 Stack 영역에 저장되며, 반대로 참조 자료형은 Heap 영역에 저장된다.
정수 자료형
키워드 | 크기 | 초기값 | 범위 |
byte | 1바이트(8비트) | 0 | -128 ~ 127 |
short | 2바이트(16비트) | 0 | -32768 ~ 32767 |
int | 4바이트(32비트) | 0 | -2147483648 ~ 2147483647 |
long | 8바이트(64비트) | 0 | -9223372036854775808 ~ 9223372036854775807 |
- 입력받은 정수를 메모리에 저장하기 위한 데이터 타입이다.
- 메모리에 저장하기 위해서 할당 되는 메모리 크기에 따라서 byte 형, short 형, int 형 , long 형으로 나눠진다.
- byte 형과 short 형이 있는 이유
- byte 형 : 배열이나 네트워크로 데이터 전송의 기본이 되는 정수 타입으로 쓰인다.
- short 형: 사물인터넷(IOT)나 셋톱박스 등의 전자기기의 제어에 사용되는 자바프로그램에서 다른 언어(C언어)의 2바이트 메모리 체계의 int 타입과 호환성 유지를 위해 주로 사용된다.
- 다른 정수 자료형을 특별히 사용할 이유가 없다면 자바의 기본 정수 자료형인 int 타입을 사용하는 것이 좋다.
문자(char) 자료형
키워드 | 크기 | 초기값 | 범위 |
char | 2바이트(16비트) | '\u0000' | 0~65535(유니코드) |
- 한 개의 문자를 작은따옴표(' ')로 감싼 데이터를 의미하며, 입력한 문자는 2byte로 이루어진 고유의 정수(유니코드)로 변환 후 저장하거나 처리한다.
- 문자를 정수로 변환할 수 있는 데, char형 앞에 (int)와 같이 정수 데이터 타입을 나내타는 키워드를 표시하면 해당 키워드의 타입으로 값을 변환하여 저장하거나 처리할 수 있다.
- 소문자를 대문자로 변환하기 위해서는 char형 변수의 값에 32를 빼면 되는 데 정수의 결과값으로 변환 되므로 (char)변수로 강제 형 변환을 진행하면 문자로 출력할 수 있다.
이스케이프(Escape) 문자
- 영문이나 한글 문자 외에 키보드의 "Tab" 키나 "Enter"키의 기능에 해당되는 문자들을 프로그래밍할 수 있다.
- 키보드의 특수문자들을 이스케이프(Escape) 문자하고 하며, '\ (역슬래시)'를 붙여서 사용한다.
- '\n'과 '\r'의 유래
- 두 용어 모두 과거 문서 작업에 쓰던 타자기에서 유래된 용어이다.
- \n : 종이를 위로 올리는 행동을 의미하며, 개행(LINE FEED)라고 한다.
- \r : 종이를 위로 올리고 첫 위치로 오게하는 행동을 의미하며, 복귀(CARRIAFE RETURN)라고 한다.
이스케이프 문자 | 의미 |
\t | 탭 |
\n | 개행 문자 |
\r | 열 복귀(다음 줄 맨 앞으로 이동) |
\' | 단일 인용 부호(') |
\" | 다중 인용 부호(") |
\\ | 백슬래시(\) |
\u16진수 | 16진수 유니코드에 해당되는 문자 출력 |
실수형
키워드 | 크기 | 초기값 | 범위 | 유효자릿수 |
float | 4바이트(32비트) | 0.0F | - 3.4 x 1038 ~ 3.4 x 1038 | 7 |
double | 8바이트(64비트) | 0.0 | - 1.8 x 10308 ~ 1.8 x 10308 | 16 |
[실수 자료형의 크기와 표현 범위]
- 실수는 소수점을 가지는 수를 의미한다.
- 메모리에 저장 시 할당되는 메모리 크기에 따라 float형과 double형으로 나뉜다.
- 큰 실수나 작은 실수를 표현할 때 지수 표기법(exponenital notation)을 사용한다.
- 자바에서 사용되는 여러 가지 실수들의 표현법
- 값에 'f'나 'F'를 붙이면 float형실수를 의미
- 값에 'd'나 'D'를 붙이면 double형 실수를 의미
- 값에 'e'나 'E'는 기수 10을 의미 (eg. 2e7 = 5 x 102)
- 다른 실수 자료형을 특별히 사용할 이유가 없다면 자바의 기본 실수 자료형인 double 형을 사용하는 것이 좋다.
논리(boolean) 자료형
키워드 | 크기 | 초기값 | 범위 |
boolean | 1바이트(1비트) | false | true, false |
- 논리 자료형은 참이나 거짓을 나타낸다.
- 실제 값을 저장하는 공간은 전체 8비트 중 1비트만 사용한다.
- 조건문이나 반복문에서 실행 흐름을 제어하는 역할을 수행한다.
형 변환의 종류
자동 형 변환
- 정수와 실수를 함께 연산하면 정수는 표현 범위가 더 큰 실수로 자동 변환된다. 즉, 결과값은 모두 실수가 된다.
- 자바는 다른 자료형 타입끼리 연산 시 컴파일러에서 자동 형 변환을 수행한다. 이를 묵시적 형 변환이라고도 한다.
- 자료형은 크기가 큰 쪽, 표현 범위가 넓은 쪽으로 자동 변환된다.
- 큰 자료형을 변환 할 때에는 원래의 값을 유지한다.
- 실수와 정수가 섞여서 사용할 경우, 사용되는 자료형들 중에서 가장 큰 자료형을 기준으로 다른 자료형을 변환한다.
byte ◀ char, short ◀ int ◀ long ◀ float ◀ double |
[더 큰 자료형으로 자동 변환 되는 과정]
강제 형 변환
- 원래의 자료형을 강제로 다른 자료형으로 변환하는 것을 말한다.
- 자동 형 변환과는 달리 자료형의 키워드를 데이터나 변수 앞에 붙여서 명시적으로 형 변환을 한다.
- 실수 자료형의 데이터를 정수 자료형으로 강제 형 변환을 수행하면 소수점 이하는 버려지고 정수 부분만 남는다.
(변환할 자료형) 데이터(변수) |
[강제 형 변환 구조]
⊙ 참고 문헌
- 이병승, 「초보 개발자를 위한 자바:한 권으로 배우는 자바 마스터 가이드 북」, 영진닷컴, 2024, p87 - 105
- 마종현, 「제로베이스 백엔드 취업 파트타임 스쿨 5기:Part 01. Java 기초-Chapter 01. Java 프로그래밍-02.변수와 자료형」, 제로베이스, 2024, https://zero-base.co.kr/