null
,0
和nothing
之间有什么区别?
我无法找到解决所有这三个问题的问题。
例如:
如果我从string
获取输入并将其解析为int
。
return Integer.parseInt(sc.nextLine());
或者,如果我问的是string != ""
或is not nothing
我是否对使用何时以及为何使用感到困惑。
我对在验证数据时使用哪一个感到困惑。
答案 0 :(得分:14)
null
表示变量包含对内存中不包含对象的空间的引用。
0
是一种值为0的数字数据类型。
Nothing
并不存在,但我认为您可能将其视为空字符串""
,它只是一个不包含值的String
数据类型。 / p>
如果你从Javascript
范例看这个问题,可能会让人感到困惑。在Java中,变量不是真实的,因此在比较中考虑了类型。
答案 1 :(得分:9)
0是一个数字,用它来检查数值(int,short,float,double等)是否为0。
null
是指向任何地方的引用的值,您使用它来确保引用确实引用了某些内容。
nothing
不是Java的一部分。
最接近的事情(因为:根本没有信息)是方法的void
声明。它声明该方法几乎没有返回。
请注意,0,null
和空字符串""
是值,因此包含信息。
例如,0是“从5中减去5是什么?”的答案。 (其中包括)。
null
是对“这件事指向一个物体吗?”的否定回应。
""
“可能是”你名字中'X'的最长顺序是什么?“的答案,除非你的名字是”Xanthippe“。
答案 2 :(得分:7)
Java中没有“无”。有一个null
引用,意味着一个变量引用没有对象,所以它是一种什么都没有,但是没有undefined
的概念,因为它在Javascript中。
另请注意,应使用String
进行equals
比较,而不是!=
或==
,string.equals(otherString)
。
0
值是int
在声明为实例变量时获得的默认值。
答案 3 :(得分:5)
"Null"
,对象引用不指向任何对象,它是null。
"Nothing"
,Java没有任何名为“Nothing”的内容
"0"
表示。字符串对象的值为“0”
""
表示空字符串,即字符串对象存在,值为“”
答案 4 :(得分:5)
“没有”在Java中没有任何意义。
0表示大于-1且小于1的整数值。
“Null”表示如果内存中没有任何对象引用点,则称为“空”引用。
答案 5 :(得分:3)
在Java中检查String对象的最佳方法是使用org.apache.commons.lang.StringUtils。
如果您不想使用StringUtils
,您可能首先要检查sc.nextList()
是否为空(!= null
),如果它不为空,那么您可以检查这与“”(!= ""
)不同。
答案 6 :(得分:2)
Null变量未分配任何值。内存空间(变量)为空或保存垃圾值。 变量为0时,变量保持值' 0'。存储空间具有值' 0' 0存储在其中。
NULL基本上意味着没有值或未知的NULL值可以是空的,无意义的,甚至不是初始化的。例如,当我们说,员工奖金为空时,意味着该人没有获得任何奖金或没有资格获得奖金。如果值为0,则其平均员工获得奖金但当前奖金为零。
答案 7 :(得分:1)
例如:
int s; //s=null
int s = 0 ; //s=0
String s="";// s=nothing