java - 类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;
    }
}

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

最佳答案

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

对于 static 变量,变量的单个实例在类的所有实例中共享,尽管您不需要类的实例来访问变量。

关于java - 类java中的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34661601/

相关文章:

java - 如何提取 Object[] 并使用准备好的语句 setObject() 将其放入查询中?

java - 基础 - 使用 Java 读取/写入远程文件

java - 使用 JSoup 获取 Google 搜索结果

java - 使用 Java 的莱布尼茨公式

java - 无法访问 DonationsActivity 类型的封闭实例

java - RegExpr 与否定字符类混淆?

java - 如何从 JAR 库中了解 android 语言

java - Spring MVC : RequestBody + ResponseEntity: How to return an object/entity without some of the obj fields

java - 如何从 Guice 的注入(inject)器中检索带注释的实例?

Java 扫描器 useDelimiter 在法语中不起作用