这个题好玩了,保证看过后会大喊一声“恶心”
public class Elementary{
public static void main(String[] args){
System.out.println(12345+5432l);
}
}
不用笔就知道结果是66666,然而结果确实这样:
这不符合科学呀!!!!
看了解释真的觉得坑死了,仔细看5432后面的不是1,是个小写的L
书里给了高大上的解释:请注意左操作数开头的数字 1 和右操作数结尾的小写字
母 l 之间的细微差异。数字 1 的水平笔划(称为“臂(arm)”)和垂直笔划(称
为“茎(stem)”)之间是一个锐角,而与此相对照的是,小写字母 l 的臂和茎
之间是一个直角。
在你大喊“恶心!”之前,你应该注意到这个问题确实已经引起了混乱,这里确
实有一个教训:在 long 型字面常量中,一定要用大写的 L,千万不要用小写的 l。
这样就可以完全掐断这个谜题所产生的混乱的源头。
就是这样了。。。。