什么是" =="在Java?为什么我只能将数值数据类型与它进行比较,并且可以比较字符。但不是字符串数据类型。当我比较两个字符串时它提供了什么?
答案 0 :(得分:1)
==比较引用相等:如果其操作数在堆栈上具有相同的值,则返回true。 (也就是说,它们是相同的数字量,或者它们指向同一个对象)
字符串是对象,所以我们在这里询问它们是否指向堆栈中的同一个对象。如果我们谈论代码中定义的字符串文字,那将是真的: 如果我们有
String s1 = "Hello";
String s2 = "Hello";
然后s1 == s2 =>真
但是,如果其中一个字符串是通过某些运行时进程(例如用户输入)获得的,那么即使两个字符串的内容相同,它也不会是引用相同的。
答案 1 :(得分:0)
在Java
==
比较引用两个参考值。如果左侧参考等于右侧参考将返回true
其他false
。
当你来比较String
(对象)时,你应该使用equals()
为什么?
String a= new String("a");
String b= new String("a");
此处a
和b
按值相同,但它们有两个不同的引用。
答案 2 :(得分:0)
如果您与对象(字符串是对象)进行比较,您将比较两个对象的引用。
答案 3 :(得分:0)
Java中的'=='运算符用于比较类似的变量(如整数和另一个整数)。由于过于复杂的原因,字符串被视为“对象”类型变量。要比较字符串,请使用运算符variableString.equals(otherString);