上一页 1 ··· 85 86 87 88 89 90 91 92 93 ··· 137 下一页
摘要: 本章的大多数谜题都是颇具挑战性的。但是这个不是。下面这个程序会打印出什么呢?如果你相信的话,前2个程序被报告为系统的缺陷[Bug 4157460 4763901]: 如果你受够这些东西了,那么你不需要知道这些愚蠢谜题的详细解释,所以让我们把它们变得又短又甜: 1,这个程序会打印出1。这是由多余的标号 阅读全文
posted @ 2018-10-24 11:49 尐鱼儿 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 下面的shuffle方法声称它将公平的打乱它的输入数组的次序。换句话说,假设其使用的伪随机数发生器是公正的,它将会以均等的概率产生各种排列的数组。它真的兑现了它的诺言吗?如果没有,你将如何订正它呢? 看看这个shuffle方法,它并没有什么明显的错误。它遍历了整个数组,将随机抽取的元素互换位置。这会 阅读全文
posted @ 2018-10-24 11:48 尐鱼儿 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 下面这个程序使用一个匿名类执行了一个并不自然的动作。它会打印出什么呢? 根据一个肤浅的分析会判断该程序不能通过编译。reproduce方法中的匿名类试图调用Twisted类中的私有方法name。一个类不能调用另一个类的私有方法,是吗?如果你试图编译这个程序,你会发现它可以成功地通过编译。在顶层的类型 阅读全文
posted @ 2018-10-24 11:47 尐鱼儿 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 下面这个谜题测试了你关于二进制兼容性(binary compatibility)的知识:当你改变了某个类所依赖的另外一个类时,第一个类的行为会发生什么改变呢?更特殊的是,假设你编译的是如下的2个类。第一个作为一个客户端,第二个作为一个库类,会怎么样呢: 现在假设你像下面这样改变了那个库类并且重编译了 阅读全文
posted @ 2018-10-24 11:47 尐鱼儿 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 下面的程序实际上不会做任何事情。更糟的是,它连编译也通不过。为什么呢?又怎么来订正它呢? 这个程序看上去简单得不可能有错误,但是如果你尝试编译它,就会得到下面这个有用的错误消息: 好吧,可能这个消息不那么有用,但是我们还是从此入手。问题在于编译器产生的缺省的Inner2的构造器为它的super调用找 阅读全文
posted @ 2018-10-24 11:46 尐鱼儿 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 这个程序创建了一个对象并且检查它是否遵从某个类的不变规则(invariant)。然后该程序序列化这个对象,之后将其反序列化,然后再次检查反序列化得到的副本是否也遵从这个规则。它会遵从这个规则吗?如果不是的话,又是为什么呢? 程序中除了使用了序列化之外,看起来是很简单的。子类Sub覆写了hashCod 阅读全文
posted @ 2018-10-24 11:46 尐鱼儿 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 下面的程序由一个单一的类构成,该类表示一对类型相似的对象。它大量使用了5.0版的特性,包括泛型、自动包装、变长参数(varargs)和for-each循环。关于这些特性的介绍,请查看http://java.sun.com/j2se/5.0/docs/guide/language[Java-5.0]。 阅读全文
posted @ 2018-10-24 11:45 尐鱼儿 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 和前一个谜题一样,本谜题也大量使用了泛型。我们从前面的错误中吸取教训,这次不再使用原生类型了。这个程序实现了一个简单的链表数据结构。main程序构建了一个包含2个元素的list,然后输出它的内容。那么,这个程序会打印出什么呢? 又是一个看上去相当简单的程序。新元素被添加到链表的表头,而dump方法也 阅读全文
posted @ 2018-10-24 11:45 尐鱼儿 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 在数学中,等号(=)定义了一种真实的数之间的等价关系(equivalence relation)。这种等价关系将一个集合分成许多等价类(equivalence class),每个等价类由所有相互相等的值组成。其他的等价关系包括有所有三角形集合上的“全等”关系和所有书的集合上的“有相同页数”的关系等。 阅读全文
posted @ 2018-10-24 11:43 尐鱼儿 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 你能否举出这样一个合法的Java表达式,只要对它的某个子表达式加上括号就可以使其成为不合法的表达式,而添加的括号只是为了注解未加括号时赋值的顺序? 插入一对用来注解现有赋值顺序的括号对程序的合法性似乎是应该没有任何影响的。事实上,绝大多数情况下确实是没有影响的。但是,在两种情况下,插入一对看上去没有 阅读全文
posted @ 2018-10-24 11:41 尐鱼儿 阅读(124) 评论(0) 推荐(0) 编辑
上一页 1 ··· 85 86 87 88 89 90 91 92 93 ··· 137 下一页