局部变量是定义在方法、构造器或代码块内的变量,作用域限于声明处到对应右大括号,不可用static等修饰,无默认值须显式初始化,每次调用重新创建并自动销毁。

局部变量是定义在方法、构造器或代码块内部的变量,它的作用域仅限于定义它的那个结构内,出了这个范围就无法访问。
局部变量的作用域很明确
它从声明的位置开始生效,到所在代码块的右大括号 } 结束。比如在 if 语句里定义的变量,只在该 if 块里有效;在 for 循环里定义的,出了循环就不能用了。
- 不能被 static、public 等修饰符修饰
- 没有默认初始值,必须显式赋值后才能使用,否则编译报错
- 每次调用方法时都会重新创建,方法结束就自动销毁
和成员变量容易混淆的地方
成员变量(也叫字段)属于类或对象,在类体中定义,有默认值(如 int 是 0,引用类型是 null),能被整个类的方法访问。而局部变量完全独立,哪怕名字和成员变量一样,也只是“遮蔽”了它,并不影响成员变量本身。
例如:
立即学习“Java免费学习笔记(深入)”;
void test() {
int x = 10;
System.out.println(x); // 正确
}
System.out.println(x); // 编译错误:找不到符号 x
常见使用场景
- 方法参数本质上就是局部变量(形参)
- 循环计数器,比如 for (int i = 0; i
- 临时存储中间计算结果,比如解析字符串时的子串、转换后的数值等
- try-catch 中在 try 块内定义的变量,不能在 catch 或 finally 中直接访问(除非在外部先声明)
基本上就这些。理解局部变量的关键是盯住“花括号范围”和“必须初始化”,不复杂但容易忽略。











