☕️ 변수와 타입 — Java 메모리의 이름표
변수(Variable) : 하나의 값을 저장하는 메모리 공간에 붙인 이름
1️⃣ 변수란 무엇인가?
RAM은 수많은 주소(번지)로 이루어진 데이터 저장 공간이다.
직접 메모리 주소를 다루면 관리가 복잡해지기 때문에, 프로그래밍 언어는 변수라는 개념으로 이를 추상화한다.
메모리 주소 → 0x1A2B3C (직접 다루면 복잡)
변수 이름 → score (사람이 읽기 쉬운 이름표)
⚠️ Java의 변수는 하나의 타입만 저장할 수 있다.
정수형 변수에 실수값을 넣거나, 반대로는 불가능하다.
2️⃣ 변수 선언 & 초기화
선언 방법
int age; // 정수 저장
double value; // 실수 저장
| 단계 | 설명 |
|---|---|
| 선언 | 타입과 이름 결정 → 아직 메모리 할당 없음 |
| 초기화 | 최초 값 대입 → 이때 메모리 할당됨 |
선언과 동시에 초기화 (권장)
int score = 90; // 선언 + 초기화 한 번에
3️⃣ 초기화하지 않으면 컴파일 에러
// ❌ 잘못된 코드
int value;
int result = value + 10; // 컴파일 에러: value가 초기화되지 않음
// ✅ 올바른 코드
int value = 30;
int result = value + 10; // result = 40
초기화되지 않은 변수는 메모리에 할당되지 않아 값을 읽을 수 없다.
4️⃣ 변수 활용 예시
출력 & 연산
int hour = 3;
int minute = 5;
System.out.println(hour + "시간 " + minute + "분"); // 3시간 5분
System.out.println("총 " + (hour * 60 + minute) + "분"); // 총 185분
값 복사
int x = 10;
int y = x; // x의 값(10)이 y에 복사됨
두 변수 값 교환
int x = 3, y = 5;
int temp = x; // ① temp에 x 백업
x = y; // ② x ← y
y = temp; // ③ y ← 백업된 x
// 결과: x=5, y=3
💡 값 교환에는 반드시 임시 변수(temp) 가 필요하다.
x = y를 먼저 실행하면 원래 x 값이 사라지기 때문이다.
5️⃣ 변수 이름 규칙 & 관례
| 구분 | 내용 |
|---|---|
| 규칙 (필수) | 첫 글자는 문자, $, _ 중 하나 / 숫자로 시작 불가 |
| 관례 (권장) | 소문자로 시작하는 camelCase 사용 |
// ✅ 올바른 변수명
int totalMinute;
String userName;
// ❌ 잘못된 변수명
int 1value; // 숫자로 시작
int my-value; // 하이픈 사용 불가
📌 핵심 요약
선언 → int score;
초기화 → score = 90; (이 시점에 메모리 할당)
활용 → System.out.println(score);
- 변수는 타입 + 이름 으로 선언한다.
- 초기화 전에 읽으면 컴파일 에러 가 발생한다.
- 변수 간 대입은 값을 복사하는 것이다.
- 두 값을 교환할 때는 임시 변수가 필요하다.