(1)语法定义上的区别
静态变量用static修饰
实例变量没有static修饰
(2)运行区别,实例区别
静态变量在类中,不属于实例对象,属于类所有,只要程序加载了字节码,不用创建实例对象静态变量就会被分配空间,已经可以使用。
实例变量是某个对象的属性,只有实例化对象后,才会被分配空间,才能使用。
类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;
而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
例子如下:
public class SE004_LeiBianLiangAndShiLiBianLiang {
public static void main(String[] args) {
Demo d1 = new Demo();
Demo d2 = new Demo();
}
}
class Demo{
static int i = 1; //类变量(静态变量)
int j = 1; //实例变量
public Demo(){
i++;
j++;
System.out.println(i+":"+j);
}
}
运行结果
2:2
3:2
分析:静态变量共同类所有,值改变后,在之后的实例对象中也改变!!!!
实例变量属于当前对象所有!!!!