类变量
类变量也叫静态变量/静态方法,是该类的所有对象共享的变量,任何一个该类的对象访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量.
推荐使用 :访问修饰符 static 数据类型 变量名;
当然也可以: static 访问修饰符 数据类型 变量名
推荐使用: 类名.类变量名
当然也可以用: 对象名.类变量名
需要注意的是
- 静态变量的访问修饰符的访问权限和范围与普通类型是一样的
- 类变量是随着类加载而加载(用到类的时候会加载,只加载一次),所以即使没有创建实例对象也可以访问
访问变量名的代码解释
public class Visit { //简简单单的代码解释,相信大佬们都能看懂
public static void main(String[] args) {
System.out.println(A.name);//输出李文浩
A a = new A(); //两个输出效果相同
System.out.println("a.name="+a.name);//输出a.name=李文浩
}
}
class A{
public static String name="李文浩";
}
需要让某个类的所有对象共享一个变量时,可以考虑使用类变量
关于静态变量/类变量在内存中的位置
关于这个问题网上流传版本不同,原因是随着jdk的版本不同,但却有以下共识
- static变量是同一个类所有对象共享,不必知道其具体位置也行
- static在类加载时生成,只加载一次,没有创建对象实例也可以通过类名.类变量来访问,生命周期随类加载而开始,随类消失而消亡那个,与对象无关