4.Cast
Java Generics 并非完美,但在处理问题时,它却成了优先选择对象。这里有一些非
常极端的例子,说明 Java Generics 并非能够高效的执行。说实话,我也不想这样说:
Foo bar = (Foo) FooFactory.get(“bar”);
不幸地是,有些库无法获得消息并且还会代码泄漏,但可以利用泛型来编写单元
测试
5.使用 Calendar 或 Date 进行日期计算
使用 JDK Date 和 Calendar 类来处理复杂的时间/日期计算,除了直观上的操作外,
内置类仅提供了最原始的操作。大家可以使用像 JODA Time 这样的现代库。除非你在
x86 汇编器上编写应用程序。在这种的情况下,你可能很享受使用 JDK Date 和日历进
行计算。
6.配置 Session Replication
所有的分布式缓存产品和项目已改为 NoSQL 的键值存储。如果我们需要有状态的
客户端并且不使用 HttpSession,可以使用 AJAX/Javascript,用于高度可靠的可伸缩应
用程序。
7.写排序算法
可怕的是,我很少注意算法类,甚至编写代码的人也不会注意到这些,Java 里面
已经提供了满足各种需求的排序算法(或者是使用你名字命名的第三方库)或者他们
只是不太关心 Comparable 和 Comparator 是如何实现的。现在,你可以深入地探讨一下,
绝对是有益无害的。
8.写自己的链接列表、栈、堆等
诚然,写一个基础的链接列表相当容易,Wikipedia 上就提供了这样的一个非常漂
——
亮的页面,上面汇集了所有的链表代码。所以,我可以选择复制
粘贴。但还是比较
喜欢(建议)使用数据结构,并且一直坚持。
9.编写自己的池、集合或者一般的并发代码
凡是知道 Doug Lea 的开发者肯定都很喜欢他。Doug Lea 的 java.utl.concurrent 集合