在您看来,您遇到的最令人惊讶,奇怪,奇怪或真正的"WTF"语言功能是什么?
每个答案只能有一个功能.
class D {
public static void main(String args[]) {
Integer b2=128;
Integer b3=128;
System.out.println(b2==b3);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
false
Run Code Online (Sandbox Code Playgroud)
class D {
public static void main(String args[]) {
Integer b2=127;
Integer b3=127;
System.out.println(b2==b3);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
true
Run Code Online (Sandbox Code Playgroud)
注意:-128到127之间的数字为真.
在这段代码(story * 2) == tail中得到了True
并false为distance + 1 != tail.
== 检查参考,因为Long是不可变的,它对于两个不同的对象将是假的,
这里story * 2引用的值相等tail,但它们是两个不同的对象,而不是池的编译时常量.
public class Test2
{
public static void main(String [] args) {
Long tail = 2000L;
Long distance = 1999L;
Long story = 1000L;
System.out.println(tail > distance);
System.out.println((story * 2) == tail);
if((tail > distance) ^ ((story * 2) == tail))
System.out.print("1");
System.out.println(distance + 1 != tail);
System.out.println((story * 2) == distance);
if((distance + 1 …Run Code Online (Sandbox Code Playgroud) class Demo{
public static void main(String[] args) {
Integer i = Integer.valueOf(127);
Integer j = Integer.valueOf(127);
System.out.println(i==j);
Integer k = Integer.valueOf(128);
Integer l = Integer.valueOf(128);
System.out.println(k==l);
}
}
Run Code Online (Sandbox Code Playgroud)
第一个print语句打印为true,而第二个打印语句打印为false.为什么?请详细解释.