JAVA性能优化

Posted dream_sky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA性能优化相关的知识,希望对你有一定的参考价值。

10种简单的Java性能优化:

1、使用StringBuilder

2、避免使用正则表达式

使用正则表达式的话,至少要将 Pattern 缓存下来,避免反复编译Pattern。

static final Pattern HEAVY_REGEX =

    Pattern.compile("(((X)*Y)*Z)*");

3、不要使用iterator()方法

4、不要调用高开销方法

5、使用原始类型和栈

 

//存储在堆上

Integer i = 817598;

// 存储在栈上

int i = 817598;

6、避免递归

7、使用entrySet()迭代map

8、使用EnumSet或EnumMap

        使用配置map时,我们可能会预先知道保存在map中键值。如果这个键值非常小,我们就应该考虑使用 EnumSet 或 EnumMap

9、优化自定义hasCode()方法和equals()方法

10、考虑使用set而并非单个元素

11、不要在循环中使用try…catch…,应该把其放在最外层,在执行中抛出异常会继续循环。/

12、循环内不要不断创建对象引用,/

Object obj = null;for (int i = 0; i <= count; i++) { obj = new Object(); }

13、尽量避免随意使用静态变量,gc通常是不会回收这个对象所占有的堆内存

14、将常量声明为static final,并以大写命名

15、字符串变量和字符串常量equals的时候将字符串常量写在前面,变量写在前面,null写在后面。

16、把一个基本数据类型转为字符串,基本数据类型.toString()是最快的方式、String.valueOf(数据)次之、数据+”"最慢

17、 集合必须指定模板类型(5.0+)。说明:方便程序阅读,省去强制转换代码

18、  异常捕获尽量不要直接catch (Exception ex),应该把异常细分处理。说明:可以设计更合理异常处理分支,排错。

19、多提取公共方法,不要重复做一件事。

 

 

1
2
3
4
5
6
7
int loopTime = 50000;
Integer i = 0;
long startTime = System.currentTimeMillis();
for (int j = 0; j < loopTime; j++){
String str = String.valueOf(i);
}
System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms");

 

 

 

 

10种简单的Java性能优化:

1、使用StringBuilder

2、避免使用正则表达式

使用正则表达式的话,至少要将 Pattern 缓存下来,避免反复编译Pattern。

static final Pattern HEAVY_REGEX =

    Pattern.compile("(((X)*Y)*Z)*");

3、不要使用iterator()方法

4、不要调用高开销方法

5、使用原始类型和栈

 

//存储在堆上

Integer i = 817598;

// 存储在栈上

int i = 817598;

6、避免递归

7、使用entrySet()迭代map

8、使用EnumSet或EnumMap

        使用配置map时,我们可能会预先知道保存在map中键值。如果这个键值非常小,我们就应该考虑使用 EnumSet 或 EnumMap

9、优化自定义hasCode()方法和equals()方法

10、考虑使用set而并非单个元素

11、不要在循环中使用try…catch…,应该把其放在最外层,在执行中抛出异常会继续循环。/

12、循环内不要不断创建对象引用,/

Object obj = null;for (int i = 0; i <= count; i++) { obj = new Object(); }

13、尽量避免随意使用静态变量,gc通常是不会回收这个对象所占有的堆内存

14、将常量声明为static final,并以大写命名

15、字符串变量和字符串常量equals的时候将字符串常量写在前面,变量写在前面,null写在后面。

16、把一个基本数据类型转为字符串,基本数据类型.toString()是最快的方式、String.valueOf(数据)次之、数据+”"最慢

17、 集合必须指定模板类型(5.0+)。说明:方便程序阅读,省去强制转换代码

18、  异常捕获尽量不要直接catch (Exception ex),应该把异常细分处理。说明:可以设计更合理异常处理分支,排错。

19、多提取公共方法,不要重复做一件事。

 

 

1
2
3
4
5
6
7
int loopTime = 50000;
Integer i = 0;
long startTime = System.currentTimeMillis();
for (int j = 0; j < loopTime; j++){
String str = String.valueOf(i);
}
System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms");

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

以上是关于JAVA性能优化的主要内容,如果未能解决你的问题,请参考以下文章

性能优化之Java(Android)代码优化

优化片段着色器

Java开发代码性能优化总结

9.4 代码缓存 Java性能优化节选

有哪些Java性能优化方法?

Java性能优化