最近Java编程的几点心得

1.Lazy initialization:

重读了《Effective Java第二版》Item 71.

奇新CMS初始化和连接数据库采用了lazy initialization for instance field,在奇新网站云系统中部署大规模的站点,启动的时间减少了10倍,重构代码实现这个改动并不麻烦,只添加了一个新class,以下内容摘自《Effective Java第二版》Item 71:

If you need to use lazy initialization for performance on an instance field,
use the double-check idiom.

// Double-check idiom for lazy initialization of instance fields private volatile FieldType field; FieldType getField() { FieldType result = field; if (result == null) { // First check (no locking) synchronized(this) { result = field; if (result == null) // Second check (with locking) field = result = computeFieldValue(); } } return result; }  

2.ThreadLocal类型变量的使用

使用ThreadLocal变量不要忘记调用remove方法,因为一般线程运行完总会返回到线程池中,不调用remove方法会引起潜在的内存泄露。

3.性能问题

作为一个原则,在编写网络程序时,总是在需要时才装载类和调用相关的方法,类装载过多很影响程序启动速度,非常适用于Applet和Midlet编程。

你可能感兴趣的:(最近Java编程的几点心得)