Java性能的十一个用法[Java编程]
本文“Java性能的十一个用法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
private static Credit BaseCredit = new Credit();public static Credit getNewCredit() {return (Credit) BaseCredit.clone();}
Java语言习惯用语
1.循环
■ 在重要的循环里,消除循环终止判断时的办法调用.
比方:将
for(int i=0; i<collection.size();i++){ ... }
替换为…
for(int i=0; n=collection.size();i<n;i++){...}
■ 普通,把与循环index不相关的移到循环的表面
for(int i=0; terminal=x.length;i<terminal;i++){x[i] = x[i]/scaleA *scaleB;}
应当该成:
Double scale = scaleB*scaleA;for(int i=0; terminal=x.length;i<terminal;i++){x[i] = x[i]/scale ;}
2.字符串
■ 消除字符串通接
■ 成立长字符串时,老是利用StringBuffter替换String
■ 预先分配StringBuffer空间 StringBuffer sb = new StringBuffer(5000);
3.基本数据范例
■ 在重要的循环里利用基本数据范例(int型数据普通比long/double型数据更快)
■ 基本数据范例(Boolean,Integer,etc)的包装类主要用在当传送的办法参数必须是一个对象的引用时(而不是一个基本数据范例)
■ 对全部的常量代数表达式利用static final修饰符
■ 使常量更简单引用(编译器预先计算常量表达式)
4.非常
■ 非常只用于单个真正的错误条件 如小说520网 www.5a520.cn 抛出非常时
抛出一个非常和履行一个catch代码块耗费是很高的(主要由于当成立一个非常时要得到线程栈的一个快照)
只当条件真的非常时才抛出一个非常
■ 抛出非常首先要成立一个新的对象.
Throwable接口的构造函数调用名为fillInStackTrace()的本地(Native)办法,fillInStackTrace()办法查抄仓库,汇集调用跟踪信息.
只要有非常被抛出,VM就必须调整调用仓库,因为在处理历程中成立了一个新的对象.
非常只能用于错误处理,不该该用来掌握程序流程.
■ 使编译器和运行时最优化,将几个办法调用放在一个try/catch块中,而不是为每个办法调用实现几个try/catch块
try{ Some.method1(); //Difficut for java1.4 }catch(method1Exception e){ handle exception 1 // to optimize this code } try{ Some.method2(); //Difficut for java1.4 }catch(method2Exception e){ handle exception 2 // to optimize this code } try{ Some.method3(); //Difficut for java1.4 }catch(method3Exception e){ handle exception 3 // to optimize this code }
应当写为:
try{ Some.method1(); Some.method2(); Some.method3(); //Difficut for java1.4 }catch(method1Exception e){ handle exception 1 }catch(method2Exception e){ handle exception 2 }catch(method3Exception e){ handle exception 3 }
5.基准
■ 注意,全部这些本领会因差别的平台和虚拟机而差别
一 比方:在有些servlet容器内,通过一个OutputStream作为字节输出会更快
二 在别的的容器内,通过一个PrintWriter输出字符会更快
■ 这些本领描写的是最可移植的倡议
■ 你大概需求运行一些基准来判断在你的平台上怎么样是最快的
6.不用new关键词成立类的实例
■用new关键词成立类的实例时,构造函数链中的全部构造函数城市被自动调用.
但假如一个对象实现了Cloneable接口,我们可以调用它的clone()办法.clone()办法不会调用任何类构造函数.
在利用计划情势(Design Pattern)的场所,假如用Factory情势成立对象,则改用clone()办法成立新的对象实例非常简单.
比方,下面是Factory情势的一个典型实现:
public static Credit getNewCredit() { return new Credit(); }
优化后:
private static Credit BaseCredit = new Credit(); public static Credit getNewCredit() { return (Credit) BaseCredit.clone();}
上面的思绪关于数组处理一样很有效.
以上是“Java性能的十一个用法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |