在类中(方法之外),用static修饰的变量我们称之为静态变量或类变量。
切记:static不能用于修饰局部变量!!!
1.静态变量特点
-
静态变量优先于对象存在,静态变量随着类的加载就已经存在了。
-
一个类中,静态变量只有一份,可以被该类和该类的对象所共享。
-
我们可以通过 类名.静态变量 或 对象.静态变量 来操作静态变量。
2.静态变量内存图
我们在类中声明的静态变量存储在方法区中。
3.静态变量的使用
【示例】静态变量的使用示例
class Student {
// 成员变量
String name;
// 静态变量
static String classRoom;
// 构造方法
public Student(String name) {
this.name = name;
}
}
public class StaticVariableDemo {
public static void main(String[] args) {
// 通过类名,操作静态变量(推荐使用)
System.out.println(Student.classRoom); // 输出:null
Student.classRoom = "WH8527"; // 给静态变量赋值
System.out.println(Student.classRoom); // 输出:"WH8527"
// 创建对象操作
Student stu = new Student("小明");
// 通过对象,操作静态变量(不建议使用该方式)
stu.classRoom = "WH8528"; // 给静态变量赋值
System.out.println(stu.classRoom); // 输出:"WH8528"
}
}
4.静态变量和成员变量区别
-
区别一:生命周期不同
成员变量随着对象的创建而创建,随着对象的回收而释放。
静态变量随着类的第一次加载而存在,随着类的消失而消失。
-
区别二:调用方式不同
成员变量只能被对象调用。
静态变量可以被类名调用,也可以被对象调用。
-
区别三:数据存储位置不同
成员变量存储在堆中,也称为对象的特有数据。
静态变量存储在方法区(共享数据区)的静态区,也称为对象的共享数据。
-
区别四:创建次数不同
成员变量可以创建任意多次,每创建一次对象就创建了一次成员变量。
静态变量只能创建一次,被该类和该类的对象所共享。
成员变量可以创建任意多次,每创建一次对象就创建了一次成员变量。
静态变量只能创建一次,被该类和该类的对象所共享。
ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。
武汉尚学堂 发布了33 篇原创文章 · 获赞 0 · 访问量 284 私信 关注