类变量详解

类变量

  • 类变量的定义

类变量也叫静态变量/静态方法,是该类的所有对象共享的变量,任何一个该类的对象访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量.

  • 类变量的定义语法

推荐使用 :访问修饰符 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="李文浩";
}
  • 什么时候需要用类变量

需要让某个类的所有对象共享一个变量时,可以考虑使用类变量

  • 类变量和实例变量区别

  • 类变量是该类所有对象共享的,而实例变量是每个对象独享的

  • 加上static称为类变量或者静态变量,否则称为实例变量/普通变量/非静态变量

  • 实例变量不能用类名了.变量名访问

关于静态变量/类变量在内存中的位置

关于这个问题网上流传版本不同,原因是随着jdk的版本不同,但却有以下共识

  • static变量是同一个类所有对象共享,不必知道其具体位置也行
  • static在类加载时生成,只加载一次,没有创建对象实例也可以通过类名.类变量来访问,生命周期随类加载而开始,随类消失而消亡那个,与对象无关

你可能感兴趣的:(java学习笔记,java)