局部变量的作用域限于声明它的代码块内且必须显式初始化。其可见范围由大括号界定,形参属方法级局部变量无需额外初始化,不可加访问修饰符,嵌套块中同名变量会遮蔽外层变量。

局部变量在代码块中使用,核心就两点:声明位置决定可见范围,声明后必须初始化才能用。
作用域严格受限于大括号
只要变量写在一对 { } 里面,它就只在这个块里有效。比如:
-
if (x > 0) { int flag = 1; System.out.println(flag); }——flag只能在if的花括号内访问 -
for (int i = 0; i < 5; i++) { System.out.println(i); }——i离开for就不可见 - 两个相邻的
{ }块,即使只隔一行,各自定义的同名变量也互不影响、互不可见
必须显式初始化才可使用
局部变量没有默认值,声明即报错:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- ❌
int count;然后直接System.out.println(count);→ 编译失败 - ✅ 正确写法是
int count = 0;或在使用前赋值,如int count; count = 10; System.out.println(count); - 形参属于方法级局部变量,调用时由实参赋值,所以不用额外初始化
不能加访问修饰符
局部变量只服务于当前执行上下文,语言层面禁止修饰:
立即学习“Java免费学习笔记(深入)”;
- ❌
public int x = 1;、private String s = "";、static boolean done = false;都会编译报错 - ✅ 只能是简单类型声明 + 初始化,如
String name = "Alice";、double price = 99.9;
嵌套块中同名变量的处理
外层块已声明变量,内层块可以重新声明同名变量(遮蔽),但要注意逻辑清晰:
-
int id = 100;{ int id = 200; System.out.println(id); // 输出 200 }System.out.println(id); // 输出 100 - 这种写法合法,但容易引发误解,建议避免无必要遮蔽

















