我有字符串数组str[10][3]
,它充满了值。
现在我想让它变空,即。删除str
的所有值。
我已将str
定义为静态,我也希望从同一个包中的另一个claas中清空此字符串。
我可以在这里使用null
吗?
Plz建议某种方式。感谢
答案 0 :(得分:3)
当然,您可以使用null
,但首先想知道您是否真的需要对它们进行无效化,因为空值通常会产生问题并需要特殊处理。您可以使用空字符串""
来避免NullPointerExceptions
出现问题。
只需将一个新数组重新分配给同一个变量就行了,Java会关注收集数据:
ClassName.str = new String[10][3];
答案 1 :(得分:0)
str = new String[10][3];
会将一个空的2D数组分配给str
。
答案 2 :(得分:0)
只要不是基本类型(int,char,boolean,...)或只读值,就可以将值设置为null。我认为它们都不是,所以答案是肯定的。
所以解决方案是:
str = null;
如果您想用新值填充结构,可以使用
str = new String[10][3];
然而我不明白为什么你应该这样做,这不是因为你不需要你应该摆脱它的数据。此外,在新的str
中还有数据(最初的null
- 字符串)。但是如果你不想将新数据存储到结构中,那么这样做是没有问题的。这种范式有时被称为“懒惰”。它意味着:“除非你绝对不得不做任何事情”
通过设置null
,数据不会立即消失。它是由垃圾收集器删除的。只运行在某个低频率或程序需要内存的程序。在这种情况下,它会将内存标记为空闲,以便可以重复使用。