1. 尽量在合适的场合使用单例
使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:
第一,控制资源的使用,通过线程同步来控制资源的并发访问;
第二,控制实例的产生,以达到节约资源的目的;
第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。
2. 尽量避免随意使用静态变量
要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如
- public class A{
- static B b = new B();
- }
此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会常驻内存,直到程序终止。
3. 尽量避免过多过常的创建Java对象
4. 尽量使用final修饰符
5. 尽量使用局部变量
6. 尽量处理好包装类型和基本类型两者的使用场所
7. 慎用synchronized,尽量减小synchronize的方法
8. 尽量使用StringBuilder和StringBuffer进行字符串连接
9. 尽量不要使用finalize方法
10. 尽量使用基本数据类型代替对象
11. 单线程应尽量使用HashMap、ArrayList
篇幅有限,更多注意事项java性能技巧请参见
http://www.icartype.com/