栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java的static关键字

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java的static关键字

1、基本概念:

  • 通常情况下成员变量隶属于对象层级,每创建一个对象就需要申请独立的内存空间来存放该对象独立的成员变量信息,若**所有对象的某个成员变量数值完全一样**(比如某个学校的学生信息,所有学生的学校是完全一样的)却又单独存放会造成内存空间的浪费。

  • 为了解决上述问题,使用static关键字修饰成员变量表达静态的含义,此时该成员变量由对象层级提升为类层级被所有对象共享,该成员变量随着类加载准备就绪,与是否创建对象无关。

  • static关键字也可以修饰成员方法,推荐使用 类名. 的方式访问。

学生类Student:

public class Student {

    private String name;
    private Integer age;
//    private String school;//隶属于对象层级,每个对象都有独立的一份
    public static String school;//隶属于类层级,所有对象共享一份

    public Student() {
    }

    public Student(String name, Integer age, String school) {
        this.name = name;
        this.age = age;
        this.school = school;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + ''' +
                ", age=" + age +
                ", school='" + school + ''' +
                '}';
    }
}

测试一下是否被所有对象共享:

 public static void main(String[] args) {
        Student student1 = new Student("刘亦菲",20,"清华");
        Student student2 = new Student("刘诗诗",30,"清华");

        System.out.println("---------------------------------------------------------------------");
        student1.setSchool("北大");
        System.out.println("student2.setSchool=" +student2.getSchool());

        Student student3 = new Student();
        System.out.println("student3.setSchool="+student3.getSchool());
    }

测试结果:

---------------------------------------------------------------------
student2.setSchool=北大
student3.setSchool=北大

缺陷:一个学生改了学校其他所有的都会更改!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/683859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号