谜题四:初级问题

这个题好玩了,保证看过后会大喊一声“恶心”

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。
这样就可以完全掐断这个谜题所产生的混乱的源头。

就是这样了。。。。

posted @ 2017-02-28 17:51  Gypsophilamy  阅读(194)  评论(0)    收藏  举报