java程序性能优化技巧

  • 慎用try catch,不要在循环体中去做try catch

  • 尽量用局部变量代替全局变量:调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中,速度较快,静态变量,实例变量等都保存在堆中,速度较慢。

  • 位运算代替乘除法
    int a = 100;
    a<<=1; //a乘以2

  • 尽量使用一维数组代替二维数组

  • 关注循环体,对循环体中的重复运算的代码进行提取,放到循环外执行。如获取数组或集合的大小,循环中做了重复的运算操作。

  • 进行数组复制时,应使用arraycopy函数
    int [] array = new int[10];
    int []copy = new int[10];
    System.arraycopy(array,0,copy,10);

  • 循环给数组或集合赋值时,使用以下方式展开循环可极大的减少循环次数,(循环比赋值要费时间)
    int[] array = new int[99999];
    for(int i=0;i<99999;i+=3){
    array[i] = i;
    array[i+1] = i+1;
    array[i+2] = i+2;
    }

  • 使用Buffer进行io操作,使用缓冲组件对文件IO进行包装,可以大幅度提升性能
    DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(“文件路径”)));

  • 如果构造函数比较复杂,则在创建对象时可以考虑使用clone,但是注意clone返回的对象是浅拷贝,对于内部的属性,如集合,类属性,两个对象指向的是同一个属性,这时候需要重写clone()进行深拷贝

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值