有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java类中的静态变量

我想问一下类中的静态变量是否会为初始化的类添加额外的内存

假设我有一门课是这样的:

public class Sample{

    public static String NAME[] = {"1", "2", "3", "4"};

    private int id;

    private String uuid;
    private String name;

    public void setUuidString() {
        UUID uuid = UUID.randomUUID();
        this.uuid = uuid.toString();
    }

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

    public void setCustomUuid(String uuid) {
        this.uuid = uuid;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    public String getUuid() {
        return uuid;
    }

    public String getName() {
        return name;
    }
}

我多次创建示例类,初始化它并将其添加到示例类的数组中,静态变量是否会为该类添加额外的内存,或者当它是静态的时,它是否只会获得一个内存位置


共 (1) 个答案

  1. # 1 楼答案

    由于static变量是在程序执行开始时初始化的,因此会为变量留出内存。因为变量是static,所以它属于它的类,而不是该类的实例。因此,对于您创建的每个实例,都不会使用额外的内存

    使用static变量时,变量的单个实例将在类的所有实例中共享,尽管您不需要类的实例来访问变量