【Java】static 修饰变量

简介: 【Java】static 修饰变量

static

一种java内置关键字,静态关键字,可以修饰成员变量、成员方法。

static + 成员变量


1.static + 成员变量

成员变量按照有无static修饰,可以分为

  • 类变量static + 变量属于类,仅存一份,由类全部对象所共享。
  • 实例变量(对象的变量)无static修饰属于每个对象

2.类变量图解

3.类变量的访问

类变量可以由 对象访问,也可以由 类进行访问

对比:实例变量仅支持由 对象进行访问

// 类变量的访问
        //1.类 . 变量名称
        Student.name = "szg";
        System.out.println(Student.name);
        //2.对象 . 变量名称
        Student s1 = new Student();
        System.out.println(s1.name);
        // 实例变量的访问
        //1.类 . 变量名称  error
        //Student.age = 16; // error
        //System.out.println(Student.age); // error
        //2.对象 . 变量名称
        Student s2 = new Student();
        System.out.println(s1.age);

4.类变量的内存原理


代码测试验证:

// 类变量被所有对象所共享,而实例变量每个对象都有一个,相互独立
        s1.age = 10;
        s2.age = 20;
        s1.name = "wangwu";
        s2.name = "lisi";
        System.out.println(s1.age);
        System.out.println(s2.age);
        System.out.println(s1.name);
        System.out.println(s2.name);

输出结果:

5.类变量的应用

测试类:

// User 的个数
        User u1 = new User();
        User u2 = new User();
        User u3 = new User();
        User u4 = new User();
        User u5 = new User();
        User u6 = new User();
        System.out.println(User.number);

User类:

package suziguang_d1_staticdemo;
public class User
{
    public static int number;
    public User()
    {
           number++;
           //User.number++;
    }
}

输出结果:


EOF

相关文章
|
10天前
|
Java 编译器
java“变量 x 可能未被初始化”解决
在Java中,如果编译器检测到变量可能在使用前未被初始化,会报“变量 x 可能未被初始化”的错误。解决方法包括:1. 在声明变量时直接初始化;2. 确保所有可能的执行路径都能对变量进行初始化。
|
1月前
|
存储 Java
java基础(7)变量以及变量的分类
Java变量是内存中存储数据的基本单元,包含数据类型、名称和字面值。变量的数据类型决定了分配的内存空间大小。变量声明格式为“数据类型 变量名;”,变量名应符合标识符命名规范。变量可以重新赋值,但数据类型需一致。变量可以一行声明多个,作用域决定了变量的可用范围。变量分为局部变量和成员变量,局部变量定义在方法体内,成员变量定义在方法体外、类体内。
32 2
|
5天前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
18 3
|
12天前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
19 5
|
14天前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
45 4
|
17天前
|
Java
java中父类方法return this.对象还是变量,子类去调用this.这个方法的问题
本文探讨了在Java中,当父类的方法返回`this`对象或变量时,子类调用该方法的行为,以及`this`关键字在不同类中调用方法时的指向问题。
11 0
java中父类方法return this.对象还是变量,子类去调用this.这个方法的问题
|
18天前
|
Java
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
这篇文章详细解释了Java中static和final关键字的用法,包括它们修饰类、方法、变量和代码块时的行为,并通过代码示例展示了它们的具体应用。
68 0
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
|
1月前
|
存储 Java
Java之静态(static)与实例(instance)
Java之静态(static)与实例(instance)
|
1月前
|
存储 Java 开发者
【Java新纪元启航】JDK 22:解锁未命名变量与模式,让代码更简洁,思维更自由!
【9月更文挑战第7天】JDK 22带来的未命名变量与模式匹配的结合,是Java编程语言发展历程中的一个重要里程碑。它不仅简化了代码,提高了开发效率,更重要的是,它激发了我们对Java编程的新思考,让我们有机会以更加自由、更加创造性的方式解决问题。随着Java生态系统的不断演进,我们有理由相信,未来的Java将更加灵活、更加强大,为开发者们提供更加广阔的舞台。让我们携手并进,共同迎接Java新纪元的到来!
53 11
|
2月前
|
Java
【Java基础面试七】、请介绍一下实例变量的默认值
这篇文章介绍了Java中实例变量的默认值:引用数据类型的默认值是null,而基本数据类型的默认值根据其类型分别是0、0L、0.0F、0.0、'\u0000'和false。
【Java基础面试七】、请介绍一下实例变量的默认值