专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » java用法:提高Java性能的几个高效使用方法 »正文

java用法:提高Java性能的几个高效使用方法

来源: 发布时间:星期五, 2009年2月20日 浏览:0次 评论:0


1.在重要循环里消除循环终止判断时思路方法



view plaincopy to clipboardpr?

    ="dp-j">
  1. ="alt">="keyword">for(="keyword">i=="number">0;i<collection.size;i)
  2. ="">{
  3. ="alt">...
  4. ="">}



替换为…



view plaincopy to clipboardpr?

    ="dp-j">
  1. ="alt">="keyword">for(="keyword">i=="number">0;n=collection.size;i<n;i)
  2. ="">{
  3. ="alt">...
  4. ="">}



2.通常把和循环index不相关移到循环外面



view plaincopy to clipboardpr?

    ="dp-j">
  1. ="alt">="keyword">for(="keyword">i=="number">0;terminal=x.length;i<terminal;i){
  2. ="">X[i]=x[i]/scaleA*scaleB;
  3. ="alt">}



改为



view plaincopy to clipboardpr?

    ="dp-j">
  1. ="alt">="keyword">doublescale=scaleB/scaleA;
  2. ="">="keyword">for(="keyword">i=="number">0;terminal=x.length;i<terminal;i){
  3. ="alt">X[i]=x[i]*scale;
  4. ="">}







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

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: