Loading

Java 变量类型

Java 变量类型

Java变量类型有 局部变量, 成员变量(实例变量), 静态变量

局部变量

变量声明

  • 局部变量声明在方法,构造方法或者代码块中

  • 访问修饰符不能用于局部变量

    public void demo() {
        int a = 1;
        System.out.println(a);
    }
    

初始化

局部变量没有默认值,所以局部变量被声明后必须经过初始化才能被使用

作用域

  • 局部变量只在声明它的方法,构造方法或者代码块中可见

生命周期

  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;

存储位置

  • 局部变量存在栈上分配

成员变量(实例变量)

变量声明

  • 成员变量声明在类中,方法,构造方法,代码块外面

  • 访问修饰符可以修饰成员变量

  • 实例变量可以声明在使用前或者使用后(建议在使用前)

    public class A {
        private int a;
    }
    

初始化

成员变量具有默认值, 成员变量的值可以在声明时指定,也可以在构造方法中指定

  • 数值型变量的默认值是0
  • 布尔型变量默认是false
  • 引用类型变量默认是null

作用域

  • 实例变量的值应该至少被一个方法、构造方法或代码块引用,使外部能够通过这些方式获取实例变量信息
  • 实例变量对于类中的方法、构造方法或代码块是可见的。一般情况下应该把实例变量设为私有,通过构造方法获取成员变量的值或对它进行赋值

生命周期

  • 成员变量在对象创建的时候创建,在对象被销毁的时候销毁

存储位置

  • 成员变量在堆上分配

访问

  • 实例模块可以直接通过变量名访问(非静态方法,不包括main方法 )
  • 在静态方法中(包括mian方法),应该通过全限定名访问

静态变量

变量声明

  • 静态变量声明在类中,方法外
  • 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母
  • 静态变量除了被声明为常量外很少使用。
    • 常量是指声明为public/private,final和static类型的变量。
    • 常量初始化后不可改变

初始化

成员变量具有默认值, 成员变量的值可以在声明时指定,也可以在构造方法中指定,还可以在静态代码块中初始化

  • 数值型变量默认值是0
  • 布尔型默认值是false
  • 引用类型默认值是null

作用域

  • 实例变量对于类中的方法、构造方法或代码块是可见的
  • 但为了对类的使用者可见,大多数静态变量声明为public类型

生命周期

  • 静态变量在程序开始时创建,在程序结束时销毁

存储位置

  • 静态变量存储在方法区

三种变量之间的区别

局部变量 成员变量 静态变量
定义位置 方法中,或者方法的形式参数 类中,方法外 类中,方法外
初始化值 没有默认值,定义赋值后才能使用 有默认初始化值 有默认初始值
调用方式 只能在方法内部使用 对象调用 对象调用
存储位置 方法区
生命周期 与方法共存亡 与对象共存亡 与类共存亡
别名 实例变量 类变量
posted @ 2020-11-26 20:43  ShelterY  阅读(98)  评论(0编辑  收藏  举报