1、JDK的源代码。
我现在已经养成了一个习惯,就是在写Java程序的时候,不论用到JDK里的哪个类,都会点过去看看源代码。
从源代码中,你会知道:
· JDK提供的某些功能是如何实现的
· 为什么有的时候我应该用这个,而有的时候我应该用另一个
· 如何避免不必要的性能损失
2、更多类库的源代码
如果你看了JDK的源代码,并且学会区分如何在多个功能类似的类里选择合适的那个,你就会知道,其实第三方的类库也存在这样的情况。
3、关于JVM的书
Java程序是跑在JVM里的,如果你想写出好的Java程序,那么了解一些JVM的事情是绝对不会有坏处的。而且,JVM参数的优化,也是一种很有效的性能优化方式。
《深入理解JVM》一书里,作者仅仅通过调整JVM启动参数,就让他的Eclipse的启动和运行速度大为提高。
举个例子:
我们有一个HashMap<String, String> a,我们想从中取出Key为"LastPlace"的entry的Value,但是我并不知道这个Map里是否有这样一个Key。
我们可能会这样写:
if (a.containsKey("LastPlace")) {
String value = a.get("LastPlace");
// do things with value
}
但是,问题是containsKey的实现:
public boolean containsKey(Object key) {
return getEntry(key) != null;
}
所以如果我们要把这个Key对应的Value取出来用,那我们为何不直接这样写呢?
String value;
if ((value = a.get("LastPlace")) != null) {
// do things with value
}
省去一次Hash运算。