
Java语言支持的变量类型有:
- 类变量:独立于方法之外的变量,用 static 修饰。
- 实例变量:独立于方法之外的变量,不过没有 static 修饰。
- 局部变量 :类的方法中的变量。
类变量
类变量,也叫 静态变量 ,在类中用static关键字声明,但是它在方法、 构造器 或者块之外。
每个类只有一个类变量,不管这个类有多少个对象。除了作为常量被声明之外,类变量很少被应用。常量是被作为public、 private 、final和static被声明的变量。实例变量的初始值不会被改变
静态变量存储在静态内存中,很少采用静态变量而不是声明结束或者用常量public或private之一。静态变量随着程序的开始而开始,随着程序的结束而结束。
可见性和实例变量类似。然而大多数静态变量被声明为public由于他们必须为类的使用者所用。默认值和实例变量类似,除此之外,可以在特殊的静态初始化区赋值,静态变量可以用类的名称访问ClassName.VariableName
当静态变量被作为public static final声明时,变量(常量)名称都要用大写字母。如果静态变量不是public和final,它的命名方法和实例变量和本地变量相同。
类变量不仅可以直接通过类名+点操作符+变量名来操作,也可以通过类的实例+点操作符+变量来操作,大多数情况下,采用前者操作方式,一来不能够有效地使用该变量,二来能够表示该变量就是类变量。

实例变量
实例变量:在类中声明,但是它在方法、构造器或者块外,当堆中的对象被分配了一个空间时,每个实例变量的位置就被创建了。
当对象采用关键字“new”创建时实例变量就被创建了,当对象被销毁时它也就被销毁了。
实例变量的值必须被一个以上的方法、构造器或者块,或者类中必须出现的对象的状态的重要部分所引用。实例变量可以使用访问描述符,并且有默认值。数字的默认为0, boolean 的默认为false,对象引用默认值为NULL。
实例变量可以直接采用在类中叫名字方式访问。然而在 静态方法 和不同的类中应当使用完全限定名称。
ObjectReference.VariableName
实例变量是归属于类的实例的变量,又称为成员变量,没有经过static修饰。实例变量只能通过类名的实例+点操作符+变量来操作。

局部变量
局部变量就是本地变量,在方法、构造器或者块中使用,在方法、构造器或者块进入时被创建,一旦退出该变量就会被销毁,局部变量没有默认值,因此本地变量必须被声明并且在第一次使用前要给它赋值
示例


–