在 JAVA 日常开发中,我们在封装类的同时难免需要声明一些静态变量与实例变量。本篇主要讲解它们二者之间的一些区别。
首先在语法定义上:声明静态变量时需要在前面添加 static 关键字来修饰。实例变量则不需要。
然后再编译过程中的区别:静态变量属于静态存储方式,只要程序加载编译了当前类的字节码,不需要创建任何实例对象就可以直接调用静态静态变量(静态变量在类被编译后直接就会分配内存空间)。实例变量属于类对象的某一个属性,使用时需要对对象先进行实例话后才能调用(实例变量需要类对象实例后才会分配内存空间)。
举个很简单的例子:
public class VariantDemo {
public static int staticVar = 0;
public int instanceVar = 0;
public VariantDemo() {
instanceVar = 1;
}
}
在这个测试类中分别声明了一个静态变量 staticVar 和实例变量 instanceVar 。在使用时
public class TestClass {
public static void main(String[] args) {
//实例变量 instanceVar 的使用需要先实例化 VariantDemo 类
VariantDemo variantDemo = new VariantDemo();
int instanceVar = variantDemo.instanceVar;
//静态变量可以通过 类名.变量名 直接使用
int staticVar = VariantDemo.staticVar;
System.out.print("staticVar=" + staticVar + "\ninstanceVar=" + instanceVar);
}
}