读<<Java解惑>>后的碎嘴子(第九章)

最终章--高级问题

86.第一条纯娱乐,再一次说明了整型负数要比正数(不含0)多一个的问题

87.第二条也没有什么值得激动的地方,重复了34条中的浮点数足够大加1不会变值的特性

88.本条初次涉及了泛型,也阐述了其最重要的erase特性,但这几页篇幅对于这5.0版的最大功能还远远不够
总结:要意识到5.0泛型这一特性带来的各个类库(包括JDK和其它第三方库)的重要改变,<<Effective Java>>有专门一章介绍的泛型的问题,CoreJava里也用了很多例子来说明erase特性

89.本条阐述了如何设计一个存在内部类的泛型类,这种情况尽管比较少见。本书对泛型的说明很少,应该是怕和<<Effective Java>>内容重复

90.
public class Outer {
class Inner1 extends Outer{}
class Inner2 extends Inner1{}
}
编译不通过,本条的翻译相当地难懂,这条我没怎么看明白,总而言之,Inner2在同时要拥有一个Outer实例,还要调用Inner1的构造方法上遇到了麻烦,普通内部类机制会导致构造方式的改变
总结:就像<<Effective Java>>所说的,除非一定需要,否则应该使用静态内部类

91.高级问题就是高级问题,大师已经进入了自娱自乐模式了,本条为了安全着想还是不要太深入研究了

92.
public class Test {

private final String name;

Test(String name) {
this.name = name;
}

private String name() {
return name;
}

private void reproduce() {
new Test("reproduce") {
void printName() {
System.out.println(name());
}
}.printName();
}

public static void main(String[] args) {
new Test("main").reproduce();
}
}
这个例子竟然可以通过编译并且打印出main,这种奇怪的代码估计也只有在这本书里才有了,总而言之name()方法因为是private的,所以匿名内部类的printName()方法调用,实际上是被关联到外部类Test实例的,也就是说,name()方法还是会访问Test的name域,这真是难以理解

93.本条相当学术,阐述了final域的编译值绑定机制,在现实中基本没有这样的事
总结:对于final域,其值会被绑定在客户端类中,但是null值除外

94.我已然不行了,说什么都没用了这次
总结:我只记住了java.util.Random提供的随机数种子是64位而java.security.SecureRandom提供的则有160位,不过这没什么意思

95.
public class ApplePie {
public static void main(String[] args) {
int count = 0;
for(int i = 0; i < 100; i++); {
count++;
}
System.out.println(count);
}
}

import java.util.*;

public class BananaBread {

public static void main(String[] args) {
Integer[] array = { 3, 1, 4, 1, 5, 9 };
Arrays.sort(array, new Comparator<Integer>() {
public int compare(Integer i1, Integer i2) {
return i1 < i2 ? -1 : (i2 > i1 ? 1 : 0);
}
});
System.out.println(Arrays.toString(array));
}
}

public class ChocolateCake {
public static void main(String[] args) {
System.out.println(true?false:true == true?false:true);
}
}
本书的最后一条了,把代码都放上来了,第一个例子很简单,因为多了个分号,使得for循环体为空,然后按顺序流程运行了一次count++。第二条是因为嵌套三目运算符,造成了无法排序问题。第三条也很简单,IDE会有警告
总结:终于完了,很有意思的一本书
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值