Java局部变量
对 Java 局部变量的理解
一、什么是局部变量
定义在方法内、方法参数、代码块(for/if/while)、构造方法内部的变量,统称为局部变量。
只在当前所属范围内有效,出了范围就不能使用。
二、局部变量的核心特点
1. 作用域范围小
只在定义它的大括号{}内有效,代码执行离开这个{},局部变量立即失效、被销毁。
2. 没有默认初始值
局部变量不会自动赋默认值(不像成员变量默认0、null),使用前必须手动赋值,否则编译报错。
3. 不被修饰符修饰
局部变量只能用 final 修饰,不能用 private、public、protected、static 修饰。
4. 存储位置
局部变量存放在栈内存中,方法调用结束后,栈内存自动释放,变量消失。
5. 生命周期短
随方法/代码块执行而创建,随方法/代码块执行结束而销毁。
6. 可以和成员变量重名
局部变量和成员变量同名时,局部变量优先(就近原则);
想要访问成员变量,需要用 this.变量名 。
三、局部变量的分类
1. 方法形参:方法括号里定义的变量,属于局部变量。
2. 方法内变量:方法体内部定义的变量。
3. 代码块变量:if、for、while、{} 内部定义的变量。
四、和成员变量的核心区别
对比 局部变量 成员变量
定义位置 方法/代码块内部 类中、方法外
默认值 无默认值,必须手动赋值 有默认值
修饰符 只能用final 可用public/private/static等
内存位置 栈内存 堆内存(对象中)
作用域 当前{}内 整个类有效
生命周期 方法执行完就销毁 对象存在就存在
代码示例理解
java
public class VarTest {
// 成员变量
int num = 10;
public void test(int a){ // a 是形参,属于局部变量
// 局部变量
int num = 20;
System.out.println(num); // 就近原则,输出20
System.out.println(this.num); // 访问成员变量,输出10
if(true){
// 代码块局部变量
int b = 30;
System.out.println(b);
}
// 这里不能使用b,超出作用域,编译报错
}
}
六、总结一句话
Java 局部变量是定义在方法/代码块内部、栈内存存储、无默认值、仅当前大括号内有效、生命周期随方法执行结束而消失的变量,遵循就近原则
原文地址: https://www.cveoy.top/t/topic/qGCm 著作权归作者所有。请勿转载和采集!