Tag: 比较运算符

(a!= b)和(a!=(a = b))之间有什么区别?

在最近的一个问题中 ,我们发现了以下代码: // p, t, q and tail are Node objects. p = (p != t && t != (t = tail)) ? t : q; 省略问题的上下文,我对以下行为感兴趣: t != (t = tail) 考虑到这些是相同类型的对象,无论何种类型。 这和之间有什么区别: t != tail 或者我错过了比较机制中至关重要的东西? 编辑 如果有人想知道,可以在java.util第352行的ConcurrentLinkedQueue类java.util找到它。

赋值运算符String对象

我是JAVA编程的新手。 我在书中读到过 String a=”Hello”; String b=”Hello”; System.out.println(a==b); 这应该返回false,因为a&b引用String对象的不同实例。 Bcoz赋值运算符比较对象的实例,但我仍然得到一个真实的 。 我正在使用Eclipse IDE。 书中的例子如下: String s = “s”; String sToo = “s”; System.out.println(a == b); System.out.println(s == sToo); 对于s == sToo,这段代码打印“false”。 那是因为s和sToo是对String对象的不同实例的引用。 因此,即使它们具有相同的值,它们在相等运算符的眼中也不相等。 此外,s ==“s”打印为false,因为字符串文字生成String类的另一个实例。 书名:JAVA 7 for Absolute Beginners