Java 강좌 · 2 / 30
변수와 자료형
매일 한 챕터씩 배우는 Java 기초 시리즈
1. 변수란 무엇인가
변수(variable)는 데이터를 저장하는 메모리 공간에 붙이는 이름입니다. Java는 정적 타입 언어이기 때문에 변수를 선언할 때 반드시 어떤 종류의 데이터를 담을지 타입(type)을 함께 지정해야 합니다.
타입 변수이름 = 초기값;
int age = 25;
double price = 9900.5;
String name = "홍길동";
💡 변수 이름은 소문자로 시작하는 카멜케이스(camelCase)를 관례로 사용합니다. 예:
userName, totalPrice2. 기본형(Primitive) 자료형
Java에는 8가지 기본형이 있으며, 각각 고정된 크기의 메모리를 차지합니다. 기본형 변수는 실제 값을 그대로 저장합니다.
| 타입 | 크기 | 설명 | 예시 |
|---|---|---|---|
byte |
1바이트 | 정수 (-128 ~ 127) | byte b = 100; |
short |
2바이트 | 정수 | short s = 1000; |
int |
4바이트 | 정수 (가장 많이 사용) | int n = 100000; |
long |
8바이트 | 큰 정수 | long l = 100000000L; |
float |
4바이트 | 실수 (정밀도 낮음) | float f = 3.14f; |
double |
8바이트 | 실수 (가장 많이 사용) | double d = 3.141592; |
char |
2바이트 | 문자 하나 | char c = 'A'; |
boolean |
1비트 | true / false | boolean flag = true; |
⚠️
long 리터럴에는 뒤에 L, float 리터럴에는 뒤에 f를 붙여야 컴파일 오류가 나지 않습니다.3. 참조형(Reference) 자료형
기본형을 제외한 모든 타입은 참조형입니다. String, 배열, 클래스, 인터페이스 등이 여기에 속하며, 변수는 실제 데이터가 아니라 객체가 저장된 메모리 주소(참조)를 담습니다.
String greeting = "안녕하세요";
int[] numbers = {1, 2, 3};
Scanner scanner = new Scanner(System.in);
기본형과 달리 참조형 변수의 기본값은 null이며, 아직 어떤 객체도 가리키지 않는다는 뜻입니다.
4. 형변환 (Type Casting)
서로 다른 타입 간에 값을 대입하려면 형변환이 필요할 수 있습니다.
// 자동 형변환 (작은 타입 → 큰 타입)
int intValue = 100;
double doubleValue = intValue; // 100.0
// 명시적 형변환 (큰 타입 → 작은 타입, 정보 손실 가능)
double pi = 3.14159;
int truncated = (int) pi; // 3, 소수점 이하 버려짐
⚠️ 큰 타입에서 작은 타입으로 변환할 때는 데이터가 손실될 수 있으므로 항상 명시적 캐스팅이 필요합니다.
5. 상수: final 키워드
값이 변하지 않아야 하는 변수는 final로 선언합니다.
final double PI = 3.14159;
final int MAX_USERS = 100;
// PI = 3.14; // 컴파일 오류! final 변수는 재할당 불가
💡 상수 이름은 관례적으로 대문자와 언더스코어(SNAKE_CASE)로 작성합니다.
6. 자주 하는 실수
- 초기화하지 않고 사용: 지역 변수는 초기값이 없으면 컴파일 오류가 발생합니다.
- 정수 나눗셈 함정:
int끼리 나누면 소수점이 버려집니다.5 / 2는2입니다. - 오버플로우:
int최대값(약 21억)을 넘으면 예상치 못한 음수가 나올 수 있습니다.
int a = 5, b = 2;
System.out.println(a / b); // 2 (정수 나눗셈)
System.out.println((double) a / b); // 2.5 (형변환 후 나눗셈)
오늘의 정리
변수 선언 방법, 8가지 기본형과 참조형의 차이, 형변환, final 상수까지 배웠습니다. 다음 챕터에서는 Java의 다양한 연산자(산술, 비교, 논리, 대입 연산자)를 다룹니다.
반응형
'Java > Java Course' 카테고리의 다른 글
| Java 연산자 완벽 정리 (0) | 2026.07.13 |
|---|---|
| Java란 무엇인가 & 개발 환경 설정 (0) | 2026.07.13 |
| Java 기초부터 심화까지 - 30일 완성 무료 Java 강좌 (0) | 2026.07.13 |