作用:用于在内存中保存数据。在 Java 中,变量本质上,就是代表一块内存区域,变量中的数据是存储在 JVM 内存中。
语法: <数据类型> <变量名称>
例如: int var;
语法: <变量名称> = <值>
例如: var = 10;
语法: <数据类型> <变量名> = <初始化值>
例如: int var = 10;
对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。
在方法体外,类体内声明的变量称为成员变量。
在方法体内部声明的变量称为局部变量。
注意:二者在初始化值方面的异同:
相同:都有各自的生命周期;
不同:局部变量除形参外,需要显示初始化;
在程序执行过程中,值不会发生变化的量,即固定不变的量称为常量,也被称为“final”变量。
常量在整个程序中只能被赋值一次,在为所有的对象共享值时,常量非常有用。
例如:
final double PI = 3.14159; // 声明 double 型的常量PI 并赋值
扩展:final关键字
其中被 final 关键字修饰的变量称为常量,其实常量的值可以进行改变,不能改变的是这个变量指针与此对象的引用关系。
案例1:
当我们使用final修饰一个String变量是,刚开始赋予了值“abc”,然后在赋值"abcd"时,这时会产生一个新的字符串对象并指向它,所以编译不通过。
案例2:
当使用 final 修饰一个 StringBuilder 的变量时,StringBuilder是在原来的对象上面进行操作,不会产生新的对象,所以这时是可以的。
但是当用 str2 重新指向一个新的StringBuilder对象时,这时就会编译不通过。
原文:https://www.cnblogs.com/niujifei/p/13542463.html