值为 null 的字符串和内存分配

String with value null and memory allocation

如果字符串对象引用空值,是否有为该值分配的内存?

例如String str = ""; String str = null;

str的值是null,或者是空字符串,这是在什么地方分配的吗?

TEXT ADDED 当 String 引用指向 null 时会发生什么(你如何指定这个 null 并且仍然没有为此 "specification" 分配内存?),如何这些信息存储?因为引用实际上存储了一个地址。

String nullObj = null;
String emptyStr= ""

两者完全不同。

null的情况下,它没有任何意义。但仍然分配内存。 null32位系统占用4字节,64位系统占用8字节

对于空字符串 (""),这是 100% 的字符串对象和内存分配。

案例-1 :

String s = null;

这里,内存只分配给引用s。 null 不是对象。所以没有为此分配内存。

案例-2 :

String s = ""`; // empty string 

这里,内存分配给字符串引用s和实际字符串值""(是的,""不同于null