40个优化小技巧,让你的java 性能提升10倍!-尊龙官网入口

1. 尽量在合适的场合使用单例

使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:

  • 第一,控制资源的使用,通过线程同步来控制资源的并发访问;
  • 第二,控制实例的产生,以达到节约资源的目的;
  • 第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。

2. 尽量避免随意使用静态变量

当某个对象被定义为 static 变量所引用,那么 gc 通常是不会回收这个对象所占有的内存,如:

public class a {    private static b b = new b(); }

此时静态变量 b 的生命周期与 a 类同步,如果 a 类不会卸载,那么 b 对象会常驻内存,直到程序终止。

3. 尽量避免过多过常地创建 java 对象

尽量避免在经常调用的方法,循环中 new 对象,由于系统不仅要花费时间来创建对象,而且还要花时间对这些对象进行垃圾回收和处理,在我们可以控制的范围内,最大限度地重用对象,最好能用基本的数据类型或数组来替代对象。

4. 尽量使用 final 修饰符

带有 final 修饰符的类是不可派生的。在 java 核心 api 中,有许多应用 final 的例子,例如 java.lang.string,为 string 类指定 final 防止了使用者覆盖 length() 方法。另外,如果一个类是 final 的,则该类所有方法都是 final 的。java 编译器会寻找机会内联(inline)所有的 final 方法(这和具体的编译器实现有关),此举能够使性能平均提高 50%。

如:让访问实例内变量的 getter/setter 方法变成 final。

网站地图