java用法:提高Java性能的几个高效使用方法来源: 发布时间:星期五, 2009年2月20日 浏览:0次 评论:0
1.在重要循环里消除循环终止判断时思路方法 view plaincopy to clipboardpr? ="java" style="DISPLAY: none" rows="5" cols="50" name="code">for( i=0; i<collection.size; i) { ... } 替换为… view plaincopy to clipboardpr? ="java" style="DISPLAY: none" rows="5" cols="50" name="code">for( i=0;n=collection.size;i<n;i) { ... } 2.通常把和循环index不相关移到循环外面 view plaincopy to clipboardpr? ="java" style="DISPLAY: none" rows="3" cols="50" name="code">for( i=0;terminal=x.length;i<terminal;i){ X[i]=x[i]/scaleA*scaleB; } 改为 view plaincopy to clipboardpr? ="java" style="DISPLAY: none" rows="4" cols="50" name="code">double scale = scaleB/scaleA; for( i=0; terminal=x.length; i<terminal; i){ X[i]=x[i]*scale; } 2.串■ 消除串连接 ■ 创建长串时总是使用StringBuffter代替String ■ 预先分配StringBuffer空间 StringBuffer sb = StringBuffer(5000); 3.基本数据类型■ 在重要循环里使用基本数据类型(型数据通常比long/double型数据更快) ■ 基本数据类型(Boolean,Integer,etc)包装类主要用在当传递思路方法参数必须是个对象引用时(而不是个基本数据类型) ■ 对所有常量代数表达式使用 final修饰符 使常量更容易引用(编译器预先计算常量表达式) 4.异常■ 异常只用于单个真正条件 抛出个异常和执行个catch代码块花费是很高(主要由于当创建个异常时要获得线程栈个快照) 只当条件真异常时才抛出个异常 ■ 使编译器和运行时最优化将几个思路方法放在个try/catch块中而不是为每个思路方法实现几个try/catch块 5.基准■ 注意所有这些窍门技巧会因区别平台和虚拟机而区别 例如:在有些servlet容器内通过个OutputStream作为字节输出会更快 在其它容器内通过个PrWriter输出会更快 ■ 这些窍门技巧描述是最可移植建议 ■ 你可能需要运行些基准来判断在你平台上如何样是最快 0
相关文章读者评论发表评论 |