有关《Java解惑》
在《高效Java(Effective Java)》的传统中,Bloch和Gafter深入研究了Java编程语言及其核心类库的细微之处。通过用可视化的令人震撼的视觉幻象来进行图释,《Java解惑》特写了95个噩梦般的谜题,它们寓教于乐。任何具备Java知识的人都可以理解这些谜题,但甚至是大多数最老练的程序员也会觉得它们很具有挑战性。
大多数的谜题都采用了短程序的方式,这些程序的行为与其看起来的行为大相径庭。你能指出它会做什么吗?根据这些谜题用到的特性以及跟随每一个谜题之后的详细解谜方案,我们把它们松散地分成了不同的组。这些解谜方案不是对程序行为的简单解释,它们向你展示了如何一劳永逸地避免其底层的陷阱与缺陷的方法。在书的后面部分有一个简单的陷阱和缺陷目录,它提供了对前面部分的引用的一个简明分类法。
你要解决掉这些谜题,并且永远都不要成为那些有违直觉或隐晦的行为的猎物,这些行为甚至可以愚弄大多数有经验的程序员。
关于作者
JOSHUA BLOCH是Google的首席工程师,以及获得过Jolt最畅销奖的《高效Java编程语言指南(Effective Java Programming Language Guide)》(Addson-Wesley,2001)一书的作者。他之前是Sun Microsystems的杰出工程师和Transarc的资深系统设计师。Josh领导了大量的Java平台特性的设计与实现工作,包括JDK 5.0中的语言增强和获奖的Java集合框架。他拥有卡耐基.梅隆大学计算机科学的博士学位。
NEAL GAFTER是Google的软件工程师和Java的传道者。他之前是Sun Microsystems的资深员工工程师,在那里他领导了Java编译器的开发工作,并且通过5.0版实现了1.4版中的Java语言特性。Neal曾经是C++标准委员会的成员,他在Sun Microsystems、Microtec Research和Texas Instruments时领导了C和C++编译器的开发工作。他拥有罗彻斯特大学计算机科学的博士学位。
目录
Java谜题1——表达式谜题 3
谜题1:奇数性 3
谜题2:找零时刻 4
谜题3:长整除 6
谜题4:初级问题 7
谜题5:十六进制的趣事 8
谜题6:多重转型 10
谜题7:互换内容 11
谜题8:Dos Equis 13
谜题9:半斤 14
谜题10:八两 15
Java谜题2——字符谜题 16
谜题11:最后的笑声 16
谜题12:ABC 18
谜题13:畜牧场 19
谜题14:转义字符的溃败 21
谜题15:令人晕头转向的Hello 22
谜题16:行打印程序 23
谜题17:嗯? 25
谜题18:字符串奶酪 26
谜题19:漂亮的火花 27
谜题20:我的类是什么? 29
谜题21:我的类是什么?II 30
谜题22:URL的愚弄 32
谜题23:不劳无获 32
Java谜题3——循环谜题 35
谜题24:尽情享受每一个字节 35
谜题25:无情的增量操作 37
谜题26:在循环中 38
谜题27:变幻莫测的i值 39
谜题28:循环者 41
谜题29:循环者的新娘 42
谜题30:循环者的爱子 43
谜题31:循环者的鬼魂 44
谜题32:循环者的诅咒 45
谜题33:循环者遇到了狼人 46
谜题34:被计数击倒了 48
谜题35:一分钟又一分钟 49
Java谜题4——异常谜题 50
谜题36:优柔寡断 51
谜题37:极端不可思议 52
谜题38:不受欢迎的宾客 54
谜题39:您好,再见! 56
谜题40:不情愿的构造器 58
谜题41:域和流 59
谜题42:异常为循环而抛 61
谜题43:异常地危险 63
谜题44:切掉类 66
谜题45:令人疲惫不堪的测验 68
Java谜题5——类谜题 70
谜题46:令人混淆的构造器案例 70
谜题47:啊呀!我的猫变成狗了 72
谜题48:我所得到的都是静态的 74
谜题49:比生命更大 75
谜题50:不是你的类型 77
谜题51:那个点是什么? 78
谜题52:合计数的玩笑 82
谜题53:按你的意愿行事 84
谜题54:Null与Void 85
谜题55:特创论 86
Java谜题6——库谜题 89
谜题56:大问题 89
谜题57:名字里有什么? 91
谜题58:产生它的散列码 93
谜题59:什么是差? 95
谜题60:一行的方法 96
谜题61:日期游戏 98
谜题62:名字游戏 100
谜题63:更多同样的问题 101
谜题64:按余数编组 102
谜题65:一种疑似排序的惊人传奇 104
Java谜题7——更多的类谜题 107
谜题66:一件私事 107
谜题67:对字符串上瘾 110
谜题68:灰色的阴影 111
谜题69:黑色的渐隐 113
谜题70:一揽子交易 114
谜题71:进口税 115
谜题72:终极危难 117
谜题73:你的隐私正在公开 118
谜题74:同一性的危机 120
谜题75:头还是尾? 121
名字重用的术语表 124
Java谜题8——更多的库谜题 126
谜题76:乒乓(加强补充线程内容) 126
谜题77:搞乱锁的妖怪 127
谜题78:反射的污染 130
谜题79:这是狗的生活 133
谜题80:更深层的反射 135
谜题81:烧焦到无法识别 137
谜题82:啤酒爆炸 138
谜题83:诵读困难者的一神论 140
谜题84:被粗暴地中断 141
谜题85:惰性初始化 143
Java谜题9——高级谜题 145
谜题86:有毒的括号垃圾 145
谜题87:紧张的关系 146
谜题88:原生类型的处理 147
谜题89:泛型迷药 150
谜题90:荒谬痛苦的超类 153
谜题91:序列杀手 155
谜题92:双绞线 158
谜题93:类的战争 160
谜题94:迷失在混乱中 162
谜题95:只是些甜点 164
5
30
1.18MB
2008-06-15
4