有哪些优化java代码的方法呢?

戚薇 Java经验 发布时间:2023-06-15 22:47:20 阅读数:17329 1
下文笔者讲述优化java常见的方法分享,如下所示

选择合适的数据容器

多线程在未发生线程安全前提下
    应尽量使用HashMap、Arraylist

由于HashTable、Vector 等使用同步机制,性能降低了

使用合适大小的HashMap

 
如果我们需使用一个较大的hashMap时
    我们需提前使用构造函数
	创建合适大小的HashMap
public HashMap(int initialCapacity, float loadFactor);

创建合适大小,可避免Hash重构
    扩容是一件很耗费性能的事
	所以对比较大的HashMap,我们应尽可能避免多次构建HashMap

减少对变量的重复运算

如
  for(int i=0;i<list.size();i++)
   最佳写法
  for(int i=0,len=list.size();i<len;i++)

4.减少不必要创建对象

如:
 A a = new A();
 if(i==1){
   list.add(a);
 }

应该改为

if(i==1){
  A a = new A();
    list.add(a);
}

5.尽量在finally块中释放资源

程序中使用到的资源应当被释放
 我们把释放代码编写在finally中,可得到有效的释放 
 

6.尽量使用移位来代替'a/b'操作

"/"是一个代价很高的操作
   使用移位的操作将会更快和更有效
如:
int num = a / 4;
int num = a / 8;

应该改为:

int num = a >> 2;
int num = a >> 3;

7.尽量使用移位来代替'a*b'的操作

如:
int num = a * 4;
int num = a * 8;

应该改为:

int num = a << 2;
int num = a << 3;

8.尽量确定StringBuffer的容量

StringBuffer 的构造器会创建一个默认大小(通常是16)的字符数组
   在使用中
    当超出这个大小,就会重新分配内存
   创建一个更大的数组,并将原先的数组复制过来
   再丢弃旧的数组

在大多数情况下,在创建StringBuffer的时候指定大小
    可避免在容量不够的时候自动增长
    使用此种方式可提高性能 
如
 StringBuffer buffer = new StringBuffer(1000);

9.尽量早释放无用对象的引用


方法局部引用变量所引用的对象会随着方法结束而变成垃圾
  因此
    大部分时候程序无需将局部,引用变量显式设为null。

例:
Public void test(){
Object obj = new Object();
……
Obj=null;
}

上面这个就没必要了,随着方法test()的执行完成
 程序中obj引用变量的作用域就结束了。但是如果是改成下面:
 Public void test(){
    Object obj = new Object();
      ……
    Obj=null;
    //执行耗时,耗内存操作;或调用耗时,耗内存的方法 
    ……
}

10.尽量避免使用二维数组

二维数据占用的内存空间
   比一维数组多得多
   大概10倍以上
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202306/16868404756801.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者