我刚刚开始围绕.equals()
vs ==
,Java的副本传递和传递引用等等。我想知道是否会有Java中可以无限运行的场景:
while (i != i) {
// infinite loop
}
我对String对象,Array对象等有一些想法,但是无法完成任何工作。感谢。
答案 0 :(得分:7)
while (Double.NaN != Double.NaN)
我认为这是Java Puzzlers
一书中的“bride of looper”谜题。
请参阅JLS以获取参考:
根据IEEE 754标准的规则执行浮点相等测试:
如果任一操作数是NaN,则==的结果为false但是 !=的结果为真。实际上,当且仅当时,测试x!= x是真的 x的值是NaN。 (方法Float.isNaN和Double.isNaN也可以 用于测试值是否为NaN。)