[Java] Java의 기본 데이터 타입🖥️ Dev/Language2025. 6. 24. 21:47
Table of Contents
Java의 데이터 타입은 크게 기본(primitive) 데이터 타입과 참조(reference) 타입으로 나뉩니다. 이 글은 Java의 기본 데이터 타입(Primitive Data Types)에 대해 정리한 글입니다.
📖 기본 데이터 타입(Primitive Type) 이란?
- 기본 타입은 자바 언어에서 가장 단순한 데이터 단위이다.
- 총 8가지가 존재하며, 모두 소문자로 표기한다.
- 변수 선언 시 메모리 상에 실제 값 자체가 저장된다. ➡️ 참조 타입과 달리, 객체의 주소나 참조 값이 저장되는 것이 아니다.
- 속도도 빠르고, 메모리 사용량도 적은 편이다.
📌 8가지 기본 데이터 타입
| 타입명 | 크기(bit) | 저장 가능한 값의 범위 | 예시 |
byte |
8 | -128 ~ 127 | 127, -100 |
short |
16 | -32,768 ~ 32,767 | 10000, -2000 |
int |
32 | -2,147,483,648 ~ 2,147,483,647 | 100, -50000 |
long |
64 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 123456789L |
float |
32 | 약 7자리 소수점까지 표현 | 3.14f |
double |
64 | 약 15자리 소수점까지 표현 | 3.1415926535 |
char |
16 | 하나의 문자, 유니코드(0~65535) | 'A', '한' |
boolean |
1 | true, false | true, false |
📖 데이터 타입 별 상세 설명
✒️ 정수형
byte: 1 바이트(8 bit) | 파일 I/O | 네트워크 전송 등에서 메모리 절약용으로 사용short: 2 바이트 | C/C++ 등 타 언어와의 호환성이 필요할 때 사용int: 4 바이트 | 가장 기본적이고 많이 사용 | 배열의 인덱스, 반복문 등에서 주로 사용long: 8 바이트 |int범위를 벗어나는 큰 수(ex. 시스템 시간, 큰 금액 등) 저장할 때 사용
public class Main {
public static void main(String[] args) {
byte b = 127; // 최대값
short s = 32000;
int i = 1000000;
long l = 10000000000L; // 끝에 L을 붙여야 long 타입 리터럴
System.out.println("byte: " + b);
System.out.println("short: " + s);
System.out.println("int: " + i);
System.out.println("long: " + l);
}
}
⚠️ 정수형 사용 시 주의사항
long타입은 리터럴 뒤에 반드시 대문자L을 붙여야 한다. (소문자l도 가능하지만, 숫자1과 혼동될 수 있어서 대문자를 권장)- 정수형 타입들은 오버플로우 및 언더플로우가 발생할 수 있다.
➡️ ex)byte b = 128;은 오류(오버플로우) 발생 (byte는-128 ~ 127만 표현 가능)
✒️ 실수형
float: 4 바이트 | 소수점 이하 7자리 정도의 정밀도 | 리터럴 뒤에 반드시f혹은F를 붙여야 함double: 8 바이트 | 소수점 이하 15자리 정도의 정밀도 | 자바에서 실수 기본형
public class Main {
public static void main(String[] args) {
float f = 3.14f; // float형은 f 접미사 필수
double d = 3.141592;
System.out.println("float: " + f);
System.out.println("double: " + d);
}
}
⚠️ 실수형 실전 사용 팁
- 실수형 변수는 부동소수점 오차가 존재하기 때문에 정확한 소수 계산이 필요한 상황(ex. 금융 계산)에서는 부적합하다.
➡️ ex)0.1 + 0.2 == 0.3은false가 출력 - 정확한 소수 연산이 필요하면,
BigDecimal클래스를 사용한다.
✒️ 문자형
char: 2 바이트 | 하나의 문자만 저장 (유니코드 사용) | 작은따옴표(' ') 사용
public class Main {
public static void main(String[] args) {
char c1 = 'A';
char c2 = 44032; // '가'의 유니코드 값
char c3 = '\uAC00'; // 유니코드로 직접 표현
System.out.println("c1: " + c1); // A
System.out.println("c2: " + c2); // 가
System.out.println("c3: " + c3); // 가
}
}
⚠️ 문자형 참고 사항
char는 문자 1개만 저장한다. 문자열(ex."Hello")은char배열이거나, 참조형인String으로 따로 취급한다.char에는 정수형 숫자(유니코드 값)를 직접 대입할 수도 있다.
✒️ 논리형
boolean:true또는false만 가질 수 있는 타입 | if 문, while 문, 논리 연산 등에서 주로 사용
public class Main {
public static void main(String[] args) {
boolean flag = true;
boolean isAdult = false;
System.out.println("flag: " + flag);
System.out.println("isAdult: " + isAdult);
}
}
⚠️ 논리형 참고 사항
- 자바에서
boolean타입은 오직true혹은false만 저장 가능하다. (C/C++처럼0또는1로 저장되지 않는다.)
✅ 요약 및 정리
- Java의 기본 데이터 타입은 8개로, 실제 값 자체를 저장한다.
- 각 타입마다 사용할 때 반드시 크기와 범위, 리터럴 표기법을 정확히 숙지해야 한다.
- 기본 데이터 타입들은 참조 타입(클래스, 배열,
String등)과는 다르게 동작한다.
'🖥️ Dev > Language' 카테고리의 다른 글
| [Java] Java의 연산자 (산술, 비교, 논리, 대입 등) (4) | 2025.07.05 |
|---|---|
| [Java] Java의 변수와 상수 (0) | 2025.07.04 |
| [Java] Java의 표준 입출력 (0) | 2025.06.16 |
| [C언어] 배열과 포인터의 관계 (1차원 배열 & 2차원 배열) (0) | 2025.04.08 |
| [C언어] 포인터의 기본 개념 (0) | 2025.04.04 |
@청월누리 :: DevKuk 개발 블로그
since 2025.01.27. ~ 개발자를 향해....🔥