这可能是在某个地方被问到但我找不到它.有人可以澄清为什么这个代码编译和打印出来1?
long i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
Mys*_*ial 41
它被解析为:
long i = (byte)( +(char)( -(int)( +(long)(-1) ) ) );
Run Code Online (Sandbox Code Playgroud)
所有+和-运营商都是一元+或者-.
在这种情况下,1得到否定两次,所以它打印为a 1.
| 归档时间: |
|
| 查看次数: |
2162 次 |
| 最近记录: |