`

JAVA优化代码策略(一)

 
阅读更多

在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。所以养成好的代码编写习惯非常重要。下面我们就来具体地分析一下:

 

1、尽量重用对象

比如:String 对象的使用中,出现字符串连接情况时应用StringBuffer 代替。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。

 

2、尽量使用局部变量

调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。

其他变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。

 

3、Java 编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,会导致严重的后果。

 

4、对象使用完毕,应手动置成null

JVM回收垃圾的条件是:对象不在被引用;然而,JVM的GC并非十分的机智,即使对象满足了垃圾回收的条件也不一定会被立即回收。所以,建议我们在对象使用完毕,应手动置成null。

 

5、尽量减少对变量的重复计算

比如:

for(int i = 0;i < list.size; i ++) {
}
应替换为:
for(int i = 0,int len = list.size();i < len; i ++){
}

 

6、尽量采用lazy loading策略,即在需要的时候才开始创建

比如:

String str = “abc”;
if(i == 1) {
list.add(str);
}
应替换为:
if(i == 1) {
String str = “abc”;
list.add(str);
}

 

7、不要在循环中使用捕获异常机制,应把其放置在最外层。

 

8、array(数组) 和 ArryList的使用

array([]):最高效;但是其容量固定且无法动态改变;
ArrayList:容量可动态增长;但牺牲效率;
基于效率和类型检验,应尽可能使用array,无法确定数组大小时才使用ArrayList!

 

9、尽量使用HashMap和ArrayList ,除非必要,否则不推荐使用HashTable和Vector,后者由于使用同步机制,而导致了性能的开销。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics