background image

  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 集合