Java 变量和常量

111 阅读2分钟

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";
    }
}