---
id: java-scope
title: "Java Scope"
category: "Programming_Language"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["자바 변수 범위"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.9
created_at: 2026-07-04
updated_at: 2026-07-04
review_reason: ""
merge_history: []
tags: ["java", "programming", "w3schools", "scope"]
raw_sources: ["https://www.w3schools.com/java/java_scope.asp"]
applied_in: []
github_commit: ""
---

# [[Java Scope]]

## 🎯 한 줄 통찰 (One-line insight)
A loop's counter variable dies when the loop ends, which means the same name (`i`, `j`) can be safely reused across separate loops in the same method — scope isn't just a restriction, it's what enables variable-name reuse without conflict. [S1]

## 🧠 핵심 개념 (Core concepts)
- **Scope** — the region where a variable is accessible; Java variables live only inside the region where they're created. [S1]
- **Method scope** — a variable is usable anywhere in the method AFTER its declaration line, not before. [S1]
- **Block scope** — `{ }` delimits a block; a variable declared inside is accessible only within that block, and only after its declaration line. [S1]
- **Loop scope** — a variable declared in a for-loop header exists only inside that loop; it's destroyed once the loop ends. [S1]
- **Name reuse across loops** — since each loop's `i` is destroyed at loop end, separate loops in the same method can reuse the same variable name. [S1]

## 📖 세부 내용 (Details)
- Method scope: `int x = 100;` declared mid-method is unusable before its declaration line, usable after. [S1]
- Block scope: a variable declared inside `{ }` is inaccessible both before the block and after it ends. [S1]
- Loop scope: `for (int i = 0; i < 5; i++) { System.out.println(i); } // i is NOT accessible here`. [S1]
- Reused loop variable names: two separate `for (int i = 0; ...)` loops in the same method, each with their own independent `i`. [S1]

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
소스에서 모순되는 정보는 발견되지 않음.

## 🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다 — 여러 반복문에서 동일한 변수명(i, j)을 안전하게 재사용할 수 있는 근거가 스코프 규칙이다. [S1]

## 💻 코드 패턴 (Code patterns)
Safe reuse of loop variable name across separate loops (Java):
```java
for (int i = 0; i < 3; i++) {
    System.out.println("Loop 1: " + i);
}
for (int i = 0; i < 2; i++) {
    System.out.println("Loop 2: " + i);
}
```

## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
- **신뢰 점수:** 0.90
- **중복 검사 결과:** 신규 생성 (New discovery)

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[Java Tutorial]]
- **관련 개념:** [[Java For Loop]], [[Java Methods]], [[Java Recursion]]
- **참조 맥락:** 변수 접근 범위 규칙 — 메서드/블록/반복문 스코프의 차이.

## 📚 출처 (Sources)
- [S1] W3Schools — Java Scope — https://www.w3schools.com/java/java_scope.asp

## 📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "Java Scope" page (Astra wiki-curation, P-Reinforce v3.1 format).
