摘要: DosEqius例:下面程序将会打印什么?PublicclassDosEquis{Publicstaticvoidmain(String[]args){Charx=‘X’;IntI=0;System.out.printf(true?x:0);System.out.printf(false?i:x);}}没有运行结果之前以为是打印XX但是,很遗憾结果显示为X88。即第一个printf函数打印出的结果是和我们猜想的一样的X.但是第二个printf打印的确实88.为什么是这个结果?查阅书籍<<java解惑>>后得出结论!答案就是因为条件表达式的规范化。不知道大家注意没有两个表 阅读全文
posted @ 2013-01-06 20:41 LLeiFeng 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 下面是一个确定参数是否为奇数的publicstaticbooleanisOdd(inti){returni%2==1;}很多人一开始会认为这段代码是可行的,不过很遗憾,这段代码,它并不可行。。理由很简单,因为在所有的int数里,有一半的数是负数,而此方法对所有的负奇数的判断都会失败。在任何负整数里面改方法都是返回false.当i为为负奇数,i%2等于-1而不是1.对于上面的结果,这就得从java对取余(%)操作的定义来分析了。该操作符被定义为对于所有的int数值a和所有的非零int数值b,都满足下面的恒等式:(a/b)*b+(a%b)==a这句话也以为着:当取余操作返回一个非零的结果时,它与左 阅读全文
posted @ 2013-01-06 20:40 LLeiFeng 阅读(151) 评论(0) 推荐(0) 编辑