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,后者由于使用同步机制,而导致了性能的开销。
已有 0 人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐