이 글은 자바(Java)를 처음부터 다시 정리하는 시리즈의 첫 번째 글이다. 자바의 변수와 자료형은 이후 배열, 클래스, 객체, 컬렉션 등 모든 개념의 기초가 되기 때문에 반드시 정확하게 이해하고 넘어가야 한다.
1. 변수란
변수(variable)는 값을 저장하는 메모리 공간에 붙인 이름이다. 자바는 변수를 선언할 때 반드시 자료형을 명시해야 한다.
int count = 10;
- int : 저장할 값의 타입
- count : 변수 이름
- 10 : 실제 저장되는 값
자바는 정적 타입 언어이기 때문에 변수의 타입은 컴파일 시점에 결정된다.
2. 변수 선언과 초기화
자바에서 변수는 다음 형식을 따른다.
자료형 변수명 = 값;
선언과 초기화를 분리할 수도 있다.
int age; // 선언
age = 25; // 초기화
또는 동시에 수행할 수도 있다.
int age = 25;
지역변수는 초기화하지 않고 사용하면 컴파일 에러가 발생한다.
3. 자료형의 분류
자바의 자료형은 크게 두 가지로 나뉜다.
1) 기본 자료형 (Primitive Type)
2) 참조 자료형 (Reference Type)
이 구분은 메모리 구조와 객체 개념을 이해하는 데 매우 중요하다.
4. 기본 자료형 (Primitive Type)
기본 자료형은 값 자체를 저장한다. 특별한 이유가 없다면 정수는 int, 실수는 double을 사용한다.
| 타입 | 크기 | 설명 |
|---|---|---|
| byte | 1byte | 정수 |
| short | 2byte | 정수 |
| int | 4byte | 정수 |
| long | 8byte | 정수 |
| float | 4byte | 실수 |
| double | 8byte | 실수 |
| char | 2byte | 문자 1개 |
| boolean | 구현 의존 | true / false |
5. 정수 타입 사용 시 주의점
long 리터럴
long money = 10000000000L;
정수 리터럴은 기본적으로 int로 인식되기 때문에, long 타입 값을 사용할 때는 반드시 L을 붙여야 한다.
6. 실수 타입과 오차
double a = 0.1;
double b = 0.2;
System.out.println(a + b);
OUTPUT
0.30000000000000004
실수는 이진수로 정확하게 표현되지 않아 부동소수점 오차가 발생할 수 있다. 정확한 계산이 필요한 경우 BigDecimal을 사용한다.
7. char와 String
char
char c = 'A';
System.out.println(c);
System.out.println((int)c);
OUTPUT
A
65
char는 작은따옴표를 사용하며, 문자 1개만 저장한다. 내부적으로는 유니코드 정수값으로 처리된다.
String
String str = "Java";
큰따옴표를 사용하며 여러 문자를 저장할 수 있다. String은 참조 자료형이다.
8. 기본형과 참조형의 차이
기본형
int a = 10;
int b = a;
b = 20;
System.out.println(a);
System.out.println(b);
OUTPUT
10
20
기본형은 값이 복사된다.
참조형
int[] arr1 = {1, 2};
int[] arr2 = arr1;
arr2[0] = 100;
System.out.println(arr1[0]);
System.out.println(arr2[0]);
OUTPUT
100
100
참조형은 같은 객체를 가리킨다.
정리
- 자바는 타입이 엄격한 언어다.
- 기본형과 참조형의 차이는 매우 중요하다.
- 실수 오차와 문자열 특성은 반드시 이해해야 한다.
'Computer Science > Java' 카테고리의 다른 글
| [JAVA] 예외가 터지면 코드 흐름은 어떻게 될까 (0) | 2026.02.13 |
|---|---|
| [JAVA] 12 IO / 파일 처리 / 문자열 처리 (0) | 2026.02.13 |
| [JAVA] 11 예외 처리(Exception) (0) | 2026.02.13 |
| [JAVA] 09 인터페이스 / 추상 클래스 / 오버라이딩 / 오버로딩 (0) | 2026.02.13 |
| [JAVA] 02 연산자와 형 변환 (0) | 2026.02.01 |