一尘不染

Java-空变量是否需要内存空间

java

考虑以下代码块:

class CheckStore {
    private String displayText;
    private boolean state;
    private String meaningfulText;
    private URL url;

    public CheckStore(String text, boolean state) {
        this.displayText = text;
        this.state = state;
    }
    :
    :
}

当我在构造函数中初始化两个变量(displayTextstate)时,其他两个变量(meaningfulTexturl)是否需要内存中的空间来存储null值?

Q1。如果它们确实需要空间,那么null值将占用多少内存?(例如,int占用4个字节)。

Q2。字符串在内存中占用多少空间?字符串需要多少存储空间?它取决于字符串的长度吗?


阅读 419

收藏
2020-03-24

共1个答案

一尘不染

在Java中,null它只是引用(基本上是受限制的指针)可以具有的值。这意味着引用没有任何意义。在这种情况下,你仍然会占用参考空间。在32位系统上为4字节,在64位系统上为8字节。但是,在你实际分配该类的实例以将引用指向之前,你不会占用该引用所指向的类的任何空间。

编辑:就String而言,StringJava中的a 每个字符占用16位(2字节),加上少量簿记开销,这可能是未记录的且特定于实现的。

2020-03-24