×
データ型と変数
変数のライフサイクル(寿命)はスコープと完全に連動しています。 インスタンス変数はそのオブジェクトがヒープ領域に存在する間存続し、static変数はクラスがロードされてからプログラムが終了するまでメモリ上に保持されます。 対して、ローカル変数やブロック変数は、該当するメソッドやブロック {} の実行が開始された時点でスタック領域に割り当てられ、ブロックを抜けた瞬間にスタックから破棄(ポップアウト)されて参照不能となります。 また、Javaでは同じスコープ内において同名のローカル変数を二重に宣言することは許可されていません(シャドーイングの禁止)。例えば、メソッド内で宣言済みの変数名を、その中の for 文のループ変数名として再宣言するとコンパイルエラーとなります。

試験でのポイント

Java Silver試験では、スコープの限界を超えた変数参照による「コンパイルエラー」を答える問題が定番です。 特に以下のパターンに注意してください。 1. for文の初期化式で宣言された変数:for(int i=0; i<5; i++) の i は for ループブロック内でのみ有効です。ループ終了後に System.out.println(i); と記述するとコンパイルエラーになります。 2. try-catchブロック内の変数:try ブロックの中で宣言した変数は catch や finally ブロック、および try の外側からは参照できません。 3. 同名変数の重複宣言:外側のスコープ(メソッド直下)で宣言された変数と同名の変数を、内側のブロック(ifやforの中)で再宣言することはコンパイルエラーになります(※フィールドとローカル変数の同名は許可され、ローカル変数が優先される shadowing と混同しないこと)。

関連する用語

変数宣言の記述を簡略化する「var」や、繰り返し処理でブロック変数を活用する「for文とwhile文」、クラス全体で共有される「staticメンバ」はスコープを理解する上で密接に関連します。

ファクトチェック:1Z0-825-JPN(2026-08-01確認)。試験番号1Z0-825-JPN、試験時間90分、60問、合格ライン65%です。

この記事は公式出題範囲・チェックリストとの対応を編集部で確認した学習解説です。

公式資料

用語集一覧 / ← 前の記事 / 次の記事 →