考虑以下代码块:
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; } : : }
当我在构造函数中初始化两个变量(displayText和state)时,其他两个变量(meaningfulText和url)是否需要内存中的空间来存储null值?
displayText
state
meaningfulText
url
Q1。如果它们确实需要空间,那么null值将占用多少内存?(例如,int占用4个字节)。
null
int
Q2。字符串在内存中占用多少空间?字符串需要多少存储空间?它取决于字符串的长度吗?
在Java中,null它只是引用(基本上是受限制的指针)可以具有的值。这意味着引用没有任何意义。在这种情况下,你仍然会占用参考空间。在32位系统上为4字节,在64位系统上为8字节。但是,在你实际分配该类的实例以将引用指向之前,你不会占用该引用所指向的类的任何空间。
编辑:就String而言,StringJava中的a 每个字符占用16位(2字节),加上少量簿记开销,这可能是未记录的且特定于实现的。
String