静态变量与实例变量的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态变量与实例变量的区别相关的知识,希望对你有一定的参考价值。
语法定义上区别:被static修饰的变量称为静态变量或者类变量。没有被static修饰的对象称为实例变量
程序运行上区别:只有创建实例对象后,其中的实例变量才会被分配空间,才能使用这个实例变量。但是静态变量不属于不属于某个实例对象,而是属于类,所以也称类变量。只要程序加载了类的字节码,不用创建任何的实例对象,静态变量就会被分配空间,就可以被使用了。总的来说,实例变量必须创建对象后才可以通过这个对象来使用,而静态变量则可以直接通过使用类名来使用!
举个例子:
public class Test{
public static int gg = 0;
public int kk = 0;
public Test()
{
gg++;
kk++;
System.out.println("gg="+gg+",kk="+kk);
}
}
上面的例子中:无论创建多少个实例对象,永远只分配一个gg变量,并且每创建一个实例对象,这个gg就会加1(注意只是它的值加1哦);但是每创建一个实例对象,就会分配一个kk,即可能分配多个kk,并且每个kk的值都自加一次。
以上是关于静态变量与实例变量的区别的主要内容,如果未能解决你的问题,请参考以下文章
static修饰的静态变量与实例变量的区别,及其在初始化和内存中的运行机制详解
Java基础 -- 静态方法和实例方法有何不同无参构造函数有什么作用import java和javax有什么区别成员变量与局部变量的区别有哪些(成员变量有默认赋值)