Java 变量和常量
变量
1 全局变量
- 也叫类的属性、类的成员、成员变量,又分为实例变量和类变量(静态变量)
- 定义在类中,但在方法/构造方法、代码块以外的变量
Instance Variables 实例变量
- 不用 static 关键字声明
- 可用访问修饰符
- 具有默认值
- 存储在堆中(基本数据类型和引用数据类型都存储在这个对象中,然后这个对象作为一个整体存储在堆内存中),每个对象都有自己独立的实例变量副本
Class Variables 类变量(静态变量)
- 用 static 关键字声明
- 可用访问修饰符
- 具有默认值
- 存储在堆中(JDK 8 以前存储在方法区中,而 JDK 8 及以后存储在堆中的),所有对象共享同一个类变量副本
2 Local Variables 局部变量
- 定义在方法/构造方法、代码块内部的变量
- 不能用访问修饰符
- 没有默认值,必须显式初始化
- 基本数据类型存储在栈中,引用数据类型对象本身存储在堆中,而引用数据类型对象的引用是存储在栈中
常量
- 总的来说常量可以看成是 final 修饰的变量
1 直接(字面)常量
- 也叫常量值、字面量
1,11,0,-88,0125,-013,0x100,-0x16,697L,1.75e5,4.3,-2.3,69.7F,'a','测',"a","abc","测试",true,false,null
2 符号常量
- final 关键字修饰的变量,被赋值后就不能改变了
- 符号常量又分为全局常量(成员常量)、静态常量和局部常量
public class Test {
//全局常量(成员常量)
final int value = 1;
//静态常量
static final double PI = 3.14;
public void method() {
//局部常量
final String localValue = "test";
}
}