Java 입문 단계에서 가장 먼저 익히고 넘어가야 할 것은 Java 기본 자료형과 변수 선언입니다.
이 글에서는 byte, short, int 등 Primitive 타입과 String 같은 참조형(Reference) 타입, 그리고 다양한 리터럴 표기법까지 정리합니다.
1. Primitive 타입
Java의 Primitive 타입 8가지와 각각의 크기·범위·용도를 아래 표에 정리했습니다.
타입 | 크기 | 범위 / 설명 |
---|---|---|
byte | 1 byte | -128 ~ 127 |
short | 2 byte | -32,768 ~ 32,767 |
int | 4 byte | -231 ~ 231-1 |
long | 8 byte | -263 ~ 263-1 |
float | 4 byte | ±3.4×1038 (약 소수점 7자리) |
double | 8 byte | ±1.7×10308 (약 소수점 15자리) |
boolean | 1 byte* | true 또는 false |
char | 2 byte | 0 ~ 65,535 유니코드 문자 |
*JVM 구현에 따라 크기가 다를 수 있지만, 개념 이해를 위해 1 byte로 표기합니다.
1.1. 자료형 예시
int age = 30;
long population = 1_400_000_000L; // 접미사 'L' 필수
float pi = 3.14F; // 접미사 'F' 필수
double salary = 1_234_567.89;
boolean isJavaFun = true;
char grade = 'A';
char uniChar = '\u0041'; // 유니코드 직접 지정
long
:L
또는l
float
:F
또는f
char
: 홑따옴표('A'
),'\n'
,'\uXXXX'
등 사용
2. Reference 타입 (String 등)
Primitive 외에 나머지 모든 데이터는 참조형입니다.String
, 배열, 사용자 정의 클래스 등이 여기에 해당하며, 변수에는 **객체의 주소(레퍼런스)**가 저장됩니다.
2.1. String 불변(Immutable) 특징
String message = "Hello, Java!";<br>message = message + " World"; // 실제로는 새로운 String 객체 생성
String
은 불변이므로, 연결이나 부분 변경 시 새 객체가 생성됩니다.- 참조형은
null
할당이 가능하며, **NullPointerException
**에 유의하세요.
3. 리터럴 표기법
3.1. 숫자 리터럴
- 10진수 java복사편집
int dec = 123;
- 16진수 (
0x
접두사) java복사편집int hex = 0xFF; // 255
- 2진수 (
0b
접두사) java복사편집int bin = 0b1010; // 10
- **언더스코어(
_
)**로 자릿수 구분 java복사편집long cardNum = 1234_5678_9012_3456L;
3.2. 문자열 리터럴
- 큰따옴표(
"
)로 감싸기 java복사편집String s = "Hello World";
- 이스케이프 시퀀스
\n
,\t
,\"
,\\
등
3.3. 문자 리터럴
- 홑따옴표(
'
)로 한 글자만 java복사편집char c1 = 'A'; char c2 = '한'; char c3 = '\n';
- 두 글자 이상은 오류
3.4. 불리언 리터럴
true
,false
두 값만 허용 java복사편집boolean isActive = false;
4. 실습 팁 및 활용 예제
- 순환 소수점 오차 체험 java복사편집
float f = 0.1F * 10; double d = 0.1 * 10; System.out.println(f); // 1.0에 근사 System.out.println(d); // 1.0에 근사
- Unicode 범위 출력 java복사편집
for (char c = 0; c < 128; c++) { System.out.print(c + " "); }
- null 체크 연습 java복사편집
String s = null; if (s == null) { System.out.println("s는 null입니다"); }
다음 글 보기 ▶ [Java] 자바 연산자와 제어문 완전 정복
(Java 연산자, 비교·논리·증감·복합대입, 흐름 제어문까지 한 번에 정리)
답글 남기기