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