如何在java中将String设置为null



代码String name = null;只是将我的变量名设置为字符串";空";所以我不知道如何让我的程序等待输入。编译器不允许我在不初始化变量的情况下声明它

当我们编写时

String s = "Hello World!";
s = null;

String仍然存在于内存中,因为这不会删除它。但是,垃圾收集器将从内存中清除对象,因为没有变量引用它。
出于所有实际目的,s = null;会删除String。

在这里发布基本Java问题之前,请学习Oracle免费提供的Java教程。

请参阅有关字符串文字的教程页面。报价:

还有一个特殊的null文字,可以用作任何引用类型的值。null可以被分配给除基元类型的变量之外的任何变量。除了测试null值的存在性之外,您对它几乎没有什么可做的。因此,null在程序中经常被用作指示某个对象不可用的标记。

所以null而不是一段有四个字符的文本。关键字null的意思是"根本没有对象",没有String,什么都没有,一个空引用。

要测试对象引用变量是否为空(不包含引用),您有几个选择:

  • Objects.isNull( myVar )Objects.nonNull( myVar )
  • null == myVarnull != myVar
  • myVar == nullmyVar != null

我更喜欢第一个。

我建议您避免最后一个。使用单个EQUALS SIGN很容易出错。执行代码myVar = null,清除该变量中的任何现有引用,同时返回true。因此,编译器将而不是为您捕获您的拼写错误。相反,编译器捕获null = myVar的错误,因为null无法接收赋值。

最新更新