Java解惑
walker lee
这个作者很懒,什么都没留下…
展开
-
java解惑--谜题2:找零时刻
谜题2:找零时刻请考虑下面这段话所描述的问题:Tom 在一家汽车配件商店购买了一个价值$1.10 的火花塞,但是他钱包中都是两美元一张的钞票。如果他用一张两美元的钞票支付这个火花塞,那么应该找给他多少零钱呢?下面是一个试图解决上述问题的程序,它会打印出什么呢?public class Change{ public static void main(String原创 2015-12-10 20:37:45 · 537 阅读 · 0 评论 -
java解惑--谜题14:转义字符的溃败
谜题14:转义字符的溃败摘自《java解惑》一书,下载地址:http://download.csdn.net/detail/itismelzp/9407769下面的程序使用了两个Unicode 的转义字符,它们是用其十六进制代码来表示Unicode 字符。那么,这个程序会打印什么呢?public class EscapeRout{ public s原创 2016-01-28 17:13:47 · 712 阅读 · 0 评论 -
java解惑--谜题15:令人晕头转向的Hello
谜题15:令人晕头转向的Hello下面的程序是对一个老生常谈的例子做出了稍许的变化之后的版本。那么,它会打印出什么呢?/*** Generated by the IBM IDL-to-Java compiler, version 1.0* from F:\TestRoot\apps\a1\units\include\PolicyHome.idl* Wednesday,原创 2016-01-28 17:18:15 · 785 阅读 · 0 评论 -
java解惑--谜题1:奇数性
谜题1:奇数性摘自《java解惑》一书下面的方法意图确定它那唯一的参数是否是一个奇数。这个方法能够正确运转吗?public static boolean isOdd(int i){ return i % 2 == 1;}奇数可以被定义为被2 整除余数为1 的整数。表达式 i % 2 计算的是 i 整除 2时所产生的余数,因此看起来这个程序应该能够正确运转。遗憾的是,它不原创 2015-12-10 20:25:13 · 634 阅读 · 0 评论 -
java解惑--谜题11:最后的笑声
谜题11:最后的笑声下面的程序将打印出什么呢?public class LastLaugh{ public static void main(String[] args){ System.out.print("H"+"a"); System.out.print('H'+'a'); }}你可能会认为这个程序将打印HaHa。该程序看起来好像是用两种方式连接了H和a,但原创 2015-12-10 21:38:52 · 482 阅读 · 0 评论 -
java解惑--谜题13:畜牧场
谜题13:畜牧场George Orwell 的《畜牧场(Animal Farm)》一书的读者可能还记得老上校的宣言:“所有的动物都是平等的。”下面的Java 程序试图要测试这项宣言。那么,它将打印出什么呢?public class AnimalFarm{ public static void main(String[] args){ final String pig = "l原创 2015-12-10 21:55:42 · 604 阅读 · 0 评论 -
java解惑--谜题12:ABC
谜题12:ABC这个谜题要问的是一个悦耳的问题,下面的程序将打印什么呢?public class ABC{ public static void main(String[] args){ String letters = "ABC"; char[] numbers = {'1', '2', '3'}; System.out.println(letters + " ea原创 2015-12-10 21:51:38 · 517 阅读 · 0 评论 -
java解惑--谜题10:八两
谜题10:八两与上面的例子相反,如果我们给出的关于变量x 和i 的声明是如下的合法语句:x = x + i;但是,它并不是:x += i;乍一看,这个谜题可能看起来与前面一个谜题相同。但是请放心,它们并不一样。这两个谜题在哪一条语句必是合法的,以及哪一条语句必是不合法的方面,正好相反。就像前面的谜题一样,这个谜题也依赖于有关复合赋值操作符的规范中的细节。二者的相似之原创 2015-12-10 21:35:23 · 674 阅读 · 1 评论 -
java解惑--谜题9:半斤
谜题9:半斤现在该轮到你来写些代码了,好消息是,你只需为这个谜题编写两行代码,并为下一个谜题也编写两行代码。这有什么难的呢?我们给出一个对变量x 和i 的声明即可,它肯定是一个合法的语句:x += i;但是,它并不是:x = x + i;许多程序员都会认为该迷题中的第一个表达式(x += i)只是第二个表达式(x =x + i)的简写方式。但是这并不十分准确。这两个表达式都原创 2015-12-10 21:25:44 · 517 阅读 · 0 评论 -
java解惑--谜题8:Dos Equis
谜题8:Dos Equis这个谜题将测试你对条件操作符的掌握程度,这个操作符有一个更广为人知的名字:问号冒号操作符。下面的程序将会打印出什么呢?public class DosEquis{ public static void main(String[] args){ char x = 'X'; int i = 0; System.out.println(true ?原创 2015-12-10 21:20:28 · 519 阅读 · 0 评论 -
java解惑--谜题7:互换内容
谜题7:互换内容下面的程序使用了复合的异或赋值操作符,它所展示的技术是一种编程习俗。那么它会打印出什么呢?public class CleverSwap{ public static void main(String[] args){ int x = 1984; // (0x7c0) int y = 2001; // (0x7d1) x^= y^= x^= y;原创 2015-12-10 21:15:24 · 557 阅读 · 0 评论 -
java解惑--谜题6:多重转型
谜题6:多重转型转型被用来将一个数值从一种类型转换到另一种类型。下面的程序连续使用了三个转型。那么它到底会打印出什么呢?public class Multicast{ public static void main (String[] args){ System.out.println((int)(char)(byte) -1); }}无论你怎样分析这个程序,都会感到原创 2015-12-10 20:59:25 · 583 阅读 · 0 评论 -
java解惑--谜题5:十六进制的趣事
谜题5:十六进制的趣事下面的程序是对两个十六进制(hex)字面常量进行相加,然后打印出十六进制的结果。这个程序会打印出什么呢?public class JoyOfHex{ public static void main(String[] args){ System.out.println( Long.toHexString(0x100000000L + 0xcafebabe)原创 2015-12-10 20:55:32 · 625 阅读 · 0 评论 -
java解惑--谜题4:初级问题
谜题4:初级问题得啦,前面那个谜题是有点棘手,但它是有关整除的,每个人都知道整除是很麻烦的。那么下面的程序只涉及加法,它又会打印出什么呢?public class Elementary{ public static void main(String[] args){ System.out.println(12345+5432l); }}从表面上看,这像是一个很简单的谜原创 2015-12-10 20:51:00 · 935 阅读 · 0 评论 -
java解惑--谜题3:长整除
谜题3:长整除这个谜题之所以被称为长整除是因为它所涉及的程序是有关两个long 型数值整除的。被除数表示的是一天里的微秒数;而除数表示的是一天里的毫秒数。这个程序会打印出什么呢?public class LongDivision{ public static void main(String args[]){ final long MICROS_PER_DAY = 24 *原创 2015-12-10 20:45:46 · 598 阅读 · 0 评论 -
java解惑--谜题16:行打印程序
谜题16:行打印程序行分隔符(line separator)是为用来分隔文本行的字符或字符组合而起的名字,并且它在不同的平台上是存在差异的。在Windows 平台上,它是CR 字符(回车)和紧随其后的LF 字符(换行)组成的,而在UNIX 平台上,通常单独的LF 字符被当作换行字符来引用。下面的程序将这个字符传递给了println 方法,那么,它将打印出什么呢?它的行为是否是依赖于平台原创 2016-01-28 17:25:35 · 488 阅读 · 0 评论