java常用的性能优化
2017-04-27 17:34
197 查看
java常用的性能优化技巧
1. 尽量使用StringBuilder相比于Stringbuffer,StringBuilder没有采用同步机制,效率更高.
2. 避免在循环中使用复杂表达式
对于循环中的公共部分,尽量提出循环体。
如:
For(int i=0;i<s.length();i++){ }
应改成:
Int length= s.length();
For(int i=0;i< length;i++){ }
3. 尽量为集合设置初始大小
如果不设置初始大小,将采用默认大小,当集合达到最大值时,需要进行扩容,增大性能消耗。可以通过设置初始大小减少扩容。
4. 在finally块中关闭stream
程序中使用到的资源应当被释放,以避免资源泄漏。这最好在finally块中去做。不管程序执行的结果如何,finally块总是会执行的,以确保资源的正确关闭。
5. 使用'system.arraycopy ()'代替通过来循环复制数组
'system.arraycopy ()' 要比通过循环来复制数组快的多。
如:
public class irb
{
voidmethod () {
int[] array1 = new int [100];
for (int i = 0; i < array1.length; i++) {
array1 [i] = i;
}
int[] array2 = new int [100];
for (int i = 0; i < array2.length; i++) {
array2 [i] = array1 [i]; // violation
}
}
}
更正:
public class irb
{
void method () {
int[] array1 = new int [100];
for (int i = 0; i < array1.length; i++) {
array1 [i] = i;
}
int[] array2 = new int [100];
system.arraycopy(array1, 0, array2, 0, 100);
}
}
6. 查找单个字符的话,用charat()代替startswith()
7. 在字符串相加的时候,使用 ' ' 代替 " ",如果该字符串只有一个字符的话
8. 将try/catch块移出循环
9.对于boolean值,避免不必要的等式判断
10. 使用条件操作符代替"if (cond) a = b; else a = c;" 结构
11. 不要在循环体中实例化变量
12. 尽可能的使用栈变量
13. 不要总是使用取反操作符(!)
取反操作符(!)降低程序的可读性,所以不要总是使用
14. 采用在需要的时候才开始创建的策略。
如:
String str="abc";
if(i==1){ list.add(str);}
应改为:
if(i==1){String str="abc";list.add(str);}
15. 奇偶判断
不要使用 i % 2 == 1 来判断是否是奇数,因为i为负奇数时不成立,请使用 i % 2 != 0 来判断是否是奇数,或使用 高效式 (i & 1) != 0来判断。
16. 小数精确计算
小数精确计算尽量采用BigDecimal,BigDecimal一定要用BigDecimal(String)构造器。而千万不要用 BigDecimal(double)来构造(也不能将float或double型转换成String再来使用BigDecimal(String)来构造,因为在将float或double转换成String时精度已丢失)。
另外,如果要比较两个浮点数的大小,要使用BigDecimal的compareTo方法。
相关文章推荐
- java几个常用的性能优化细节
- 常用优化组件和方法- Java程序性能优化--让你的Java程序更快、更稳定
- java性能优化常用技巧
- java程序性能优化---2--2.2常用优化组件和方法
- Java 语言常用性能优化技巧介绍
- java 常用最实用的性能优化...
- Java 性能优化技巧集锦 (2)
- Java性能优化技巧(二)
- Java 性能的优化
- Java 性能优化技巧集锦
- java 性能优化
- Java性能优化技巧集锦(转贴)
- Java 性能优化技巧
- [转载]Java 性能优化技巧集锦(4)
- [转载]Java 性能优化技巧集锦 (5)
- [转载] Java 性能优化技巧集锦 (6)
- [转载] Java 性能优化技巧集锦(1)
- Asp.NET中常用的一些优化性能的方法
- java的性能优化网站
- Asp.NET中常用的一些优化性能的方法