我试图了解在为字符串分配 null 时会发生什么。
所以,我有一个 String str = new String("abc");
它在内存中使用了一些空间。
当 str
被分配 null
,即 str = null
时,用于创建 "abc"
的内存会发生什么。它仍然使用内存空间吗?
答案 0 :(得分:1)
Java 是垃圾收集的。为字符串分配的内存将在垃圾收集器确定的特征时间点被释放。有关详细信息,请参阅 Java Garbage Collection Basics。
更新:正如评论者指出的那样string interning 可能阻止字符串被垃圾收集。详细信息取决于许多因素,例如参考范围、JVM 和 Java 版本。