关于JAVA中变量的多维划分


zsbd

JAVA中变量可以从数据类型和OOP使用方式两个维度划分

按数据类型划分?

八大数据类型:

  1. byte
  2. short
  3. int
  4. long
  5. float
  6. double
  7. bool
  8. char
  9. 引用类型

按OOP使用方式划分?

  1. 局部变量:变量在类的方法中声明,则此变量为局部变量。局部变量需要在声明时进行初始化,否则无法直接使用,本身随着方法/代码块创建/销毁。此外,局部变量的地址是安排在栈空间中的
  2. 实例变量:变量在类的内部,且在类方法的外部,一个中间位置声明,则此变量成为实例变量。“实例变量”中的“实例”指的是这种变量会在类实例化时生成并自动初始化:整形数据自动初始化默认值为0;字符数据自动初始化默认值为\u0000(char型数据长度是两个字节占位16,每个位都初始化为0即为\u0000);引用类型则则会自动初始化为null。
  3. 类变量:顾名思义,会在类创建时就伴随这创建。由于类变量使用较少,但是很有特点,所以用法有一些讲究:
    1. 无论类在程序中实例化了多少对象,所有对象只有类变量的一份拷贝,即所有对象只能共享一个类对象;
    2. 类变量储存在静态存储区,因此通常会被声明为常量。当类变量被声明为final类型时,类常量的名称全部大写,如果没有就正常命名即可;
    3. 类本身会在程序开始时创建,因此类变量也是程序开始运行时就创建完成了,销毁也随类一同在程序结束时销毁;
    4. 大多数类变量会声明为public类型,即public static final [type] [name] = [value];
    5. 静态变量可以通过 ClassName.VariableName 的方式访问