牛骨文教育服务平台(让学习变的简单)
博文笔记

java中类变量和一般变量的区别

创建时间:2016-08-02 投稿人: 浏览次数:2422
类变量是声明在class内,method之外,且使用static修饰的变量。
实例变量是声明在class内,method之外,且未使用static修饰的变量。
类变量与实例变量的区别是:
1)存储位置不同。静态变量存储于方法区,而实例变量存储于堆区。
2)生命周期不同。静态变量在加载类过程中优先加载,其生命周期取决于类的生命周期;实例变量在创建实例时才创建,它的生命周期取决于实例的生命周期。
3)引用对象不同。静态变量属于类,被类的所有实例共享,可以直接使用类名来引用也可以通过类的实例引用;而实例变量则属于某个对象,它必须在创建对象后才可以通过这个对象来使用。

4)使用方法不同。一个类只能有一个同名静态变量,无论是通过类或者任何一个实例对静态变量重新赋值,结果都是一样;而一个类创建多少个实例就会有多少个同名实例变量,各实例变量存储空间不同,对其中一个实例变量重新赋值不影响其它实例的同名变量。

实例如下:

public class VariantTest{
	public static int staticVar = 0; 
	public int instanceVar = 0; 
	public VariantTest(){
		staticVar++;
		instanceVar++;
		System.out.println("staticVar=" + staticVar + ",instanceVar=" + instanceVar);
	}

	public static void main(String[] args) {
		VariantTest a=new VariantTest();
		VariantTest b=new VariantTest();
	}
}

运行结果为:

staticVar=1,instanceVar=1
staticVar=2,instanceVar=1

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。