这可能是在某个地方被问到的,但我找不到。有人可以澄清为什么此代码可以编译并打印出来1吗?
1
long i = (byte) + (char) - (int) + (long) - 1; System.out.println(i);
它被解析为:
long i = (byte)( +(char)( -(int)( +(long)(-1) ) ) );
所有+和-运算符都是一元+或的-。
+
-
在这种情况下,1两次取反,因此将其打印为1。