Java 자료형

코딩Java
읽는데 10분 소요
처음 쓰여진 날: 2026-04-02
마지막 수정일: 2026-04-02
조회수: 5
선수학습(1개)

요약

Java의 자료형을 정리합니다. 기본형(int, long, float, double, char, boolean)과 참조형(String, 배열, 객체)의 차이, 형변환(casting)까지 쌩기초부터 설명합니다.

자료형이란? 쌩기초

자료형(data type)은 변수에 어떤 종류의 데이터를 저장할지 정하는 것입니다.

정수를 저장할 때와 소수점이 있는 수를 저장할 때 필요한 메모리 크기가 다릅니다. 자료형을 통해 "이 변수에는 이런 종류의 데이터를 저장할 거야"라고 미리 알려주는 것입니다.

java
코드 하이라이팅 중...

Java의 자료형은 크게 기본형참조형으로 나뉩니다.

  • 기본형(primitive type): 값 자체를 저장합니다. int, double, char, boolean 등 8가지
  • 참조형(reference type): 기본형 8가지를 제외한 나머지 자료형입니다. String, 배열, 클래스 등이 여기에 속합니다.
Java 기본형 자료형별 메모리 크기 비교 — 1바이트(boolean, byte)부터 8바이트(long, double)까지
Java 기본형 자료형별 메모리 크기 비교 — 1바이트(boolean, byte)부터 8바이트(long, double)까지

자료형 핵심 정리

메모리(memory)는 프로그램이 실행될 때 데이터를 잠시 보관하는 공간입니다. 바이트(byte)는 그 메모리 크기를 나타내는 단위입니다. 크기가 클수록 더 크거나 정밀한 값을 저장할 수 있습니다.

분류자료형저장하는 데이터크기
정수형byte작은 정수 (-128 ~ 127)1바이트
정수형short중간 정수 (-32,768 ~ 32,767)2바이트
정수형int정수 (가장 기본)4바이트
정수형long큰 정수 (int 범위의 약 43억 배)8바이트
실수형float소수점이 있는 수4바이트
실수형double소수점이 있는 수 (더 정확하게 저장)8바이트
문자형char문자 하나2바이트
논리형boolean참(true) / 거짓(false)1바이트


정수형 자료형 쌩기초

정수형은 소수점이 없는 수를 저장합니다.

int — 가장 기본적인 자료형

intinteger(정수) 의 약자입니다. Java에서 가장 많이 사용하는 자료형입니다.

java
코드 하이라이팅 중...

크기는 4바이트이며, 약 -21억부터 +21억까지의 수를 저장할 수 있습니다.


long — int보다 큰 정수

longint보다 더 큰 정수를 저장할 때 사용합니다. 크기는 8바이트입니다.

java
코드 하이라이팅 중...

byte와 short

byte(1바이트)와 short(2바이트)는 int보다 작은 정수형입니다. byteshort의 범위를 외울 필요는 없지만, byte는 파일 입출력에서 가끔 등장합니다.

java
코드 하이라이팅 중...

실수형 자료형 쌩기초

실수형은 소수점이 있는 수를 저장합니다.

double — 가장 많이 쓰는 실수형

double은 소수점이 있는 수를 저장하는 자료형입니다. 크기는 8바이트이며, 소수점 이하 약 15 ~ 16자리까지 정확합니다.1

java
코드 하이라이팅 중...

Java에서 소수점이 있는 숫자(예: 3.14)를 그냥 쓰면 기본적으로 double 타입으로 처리됩니다.


float — 가벼운 실수형

float는 소수점이 있는 수를 저장하는 자료형입니다.2 크기는 4바이트이며, 소수점 이하 약 6 ~ 7자리까지 정확합니다.

java
코드 하이라이팅 중...

float로 사용하려면 숫자 뒤에 f를 반드시 붙여야 합니다.

정밀도 차이를 직접 비교하면 이렇습니다.

java
코드 하이라이팅 중...

f를 안 붙이면 double로 인식되어 컴파일 에러가 납니다.

자료형크기정밀도사용 예시
float4바이트소수점 6 ~ 7자리3.14f
double8바이트소수점 15 ~ 16자리3.141592653589793


문자형 — char 쌩기초

charcharacter(문자) 의 약자입니다. 문자 하나를 저장합니다. 문자를 저장할 때는 작은따옴표(' ')로 감쌉니다.

java
코드 하이라이팅 중...

Java의 char2바이트입니다. C언어의 char(1바이트)와 크기가 다릅니다. Java는 유니코드3를 사용하기 때문에 한글도 char 하나에 저장할 수 있습니다.

java
코드 하이라이팅 중...

char와 배열 인덱스 심화

char는 내부적으로 정수이므로, 배열의 인덱스로 사용할 수 있습니다. 예를 들어 'a'는 97번이므로 arr['a']arr[97]과 같습니다.

new boolean[256]은 boolean 값을 담는 칸 256개짜리 배열을 새로 만든다는 뜻입니다. new는 메모리에 공간을 새로 만들 때 사용하는 키워드입니다.

java
코드 하이라이팅 중...

이 패턴은 "문자의 등장 여부를 기록"하는 문제에서 자주 사용됩니다.


논리형 — boolean 쌩기초

boolean참(true) 또는 거짓(false), 딱 두 가지 값만 저장하는 자료형입니다.

java
코드 하이라이팅 중...

boolean은 어디에 쓰나요?

주로 조건을 판단할 때 사용합니다. if문이나 반복문의 조건식 결과가 boolean입니다.

java
코드 하이라이팅 중...

boolean 배열의 기본값

new boolean[크기]로 boolean 배열을 만들면, 모든 칸이 자동으로 false로 채워집니다. 이것은 Java의 규칙입니다 — boolean 배열을 만들면 항상 false입니다.

java
코드 하이라이팅 중...

이 특성을 이용하면 "방문 여부", "사용 여부"를 추적하는 배열을 쉽게 만들 수 있습니다.


기본형 vs 참조형 기초

Java의 자료형은 기본형 8가지와 나머지 모든 참조형으로 나뉩니다.

구분변수에 저장되는 것예시
기본형값 자체int x = 5 → x에 5가 저장
참조형객체의 주소String s = "abc" → s에 주소가 저장

기본형 8가지: byte, short, int, long, float, double, char, boolean

참조형: String, 배열(int[], boolean[] 등), 클래스로 만든 객체 등 — 기본형 8가지를 제외한 나머지 전부

기본형 변수를 복사하면 값이 복사되고, 참조형 변수를 복사하면 주소가 복사됩니다. 이 차이가 매개변수 전달(함수를 호출할 때 값을 넘기는 방식), 객체 배열 등에서 중요하게 작용합니다. 자세한 내용은 기본형 vs 참조형 페이지를 참고하세요.



형변환 (Casting) 기초

형변환은 한 자료형의 값을 다른 자료형으로 바꾸는 것입니다.

자동 형변환 (묵시적)

좁은 타입 → 넓은 타입으로는 자동으로 변환됩니다. 표현할 수 있는 값의 범위가 더 넓은 쪽으로 변환되므로 데이터 손실이 없습니다.

java
코드 하이라이팅 중...

byteshortintlongfloatdouble 순서로 자동 변환됩니다.

long(8바이트)에서 float(4바이트)로 가는 것이 이상해 보일 수 있습니다. 바이트 크기가 아니라 표현할 수 있는 값의 범위 기준이기 때문입니다. float는 바이트는 작아도 소수점 덕분에 long보다 훨씬 넓은 범위의 수를 표현할 수 있습니다.

charint로 자동 변환됩니다. 변환 순서 상 charint 단계에서 합류합니다. 'A'는 65이므로:

java
코드 하이라이팅 중...

강제 형변환 (명시적)

넓은 타입 → 좁은 타입으로 바꿀 때는 (자료형) 을 직접 써서 변환해야 합니다. 소수점 이하가 잘리는 등 데이터 손실이 생길 수 있습니다.

java
코드 하이라이팅 중...
java
코드 하이라이팅 중...
변환 방향방법예시결과
intdouble자동double b = 10;10.0
doubleint강제int a = (int) 3.14;3
charint자동int n = 'A';65
intchar강제char c = (char) 65;'A'

Footnotes

  1. double precision(이중 정밀도)이라고도 하며, float보다 두 배 더 정밀하게 소수를 저장한다는 뜻입니다.

  2. floating point(부동소수점)이라고도 합니다. 소수점의 위치를 고정하지 않고 움직여가며 저장하는 방식입니다.

  3. 유니코드(Unicode)는 전 세계 모든 문자(한글, 중국어, 이모지 등)를 숫자로 표현하기 위한 국제 표준입니다. ASCII 코드가 영문 위주였던 것을 확장한 버전입니다.


학습 경로
범위: 1단계