变量:内存中的一个存储区域(该区域的数据可以在同一类型范围内不断变化)。
变量是程序中最基本的存储单元,包含变量类型、变量名和变量值。
注意事项:
- Java中每个变量必须先声明,后使用,使用变量名来引用该存储区域的数据。
- 变量的作用域:一对{}(代码块)内,在作用域内才能访问,同一个作用域内,不能有同名的变量名。
- 变量类型:参照数据类型,可以是基本数据类型和引用数据类型。
- 变量名:自定义(见名知意),参照命名规范。
常量
常量:一旦声明就不可变,通常用 final 修饰的变量称为常量。
声明格式:
final 变量类型 变量名;
注意:被final修饰后的变量为常量,一旦赋值则不可变。
局部变量
一般定义在方法内、代码块内、方法形参或构造函数形参的变量,为局部变量,特点就是访问的局限性,没有默认值,使用前需要显试初始化值。
声明格式:
[final] 变量类型 变量名 = 初始化值;
示例:
public int compute(int a) {
//声明并赋值
int val = 15;
return val + a;
}
如上代码,val变量只作用在compute方法内,当方法执行完后,该变量会在内存中被释放(生命周期)。
注意:
- 局部变量除形参外,需显试初始化(明确指定值)。
- 局部变量除了final修饰,不能使用其他修饰符(包括访问权限修饰符)。
- 一旦被final修饰,就是局部常量。
成员变量
一般定义在方法外,类内的变量,为成员变量,成员变量作用于当前整个类,类中的所有方法都能访问,有默认值。
声明格式:
[访问修饰符] [其他修饰符] 变量类型 变量名;
说明:
- 访问权限修饰符(可选):default(默认)、private、public、protected等。
- 其他修饰符(可选):static、final等。
示例:
public class Person {
private static int age;
}
成员变量和局部变量的区别
区别 | 成员变量 | 局部变量 |
---|---|---|
声明位置 | 直接声明在类中 | 方法形参或内部、代码块内、构造器内等 |
修饰符 | private、public、缺省(default)、protected、static、final等 | 不能用权限修饰符,可以用final修饰 |
初始化值 | 有默认初始化值 | 没有默认初始化值,必须显示赋值 |
内存加载位置 | 堆空间或静态域内 | 栈空间 |