java提高系统性能_使用BigDecimal时提高系统性能的一些优化

有时在项目开发过程中,对数值的精度要求较高时可能就会用到java.math.BigDecimal,使用时发现有些用法效率较低。

1:初始化一个java.math.BigDecimal时尽量用java.math.BigDecimal.valueOf(0)来替代new java.math.BigDecimal().

2:比较两个java.math.BigDecimal对象时,最好用equals(),而不要进行数值转换,如:doubleValue等,测试发现凡涉及到类型转换,性能都要受到较大影响。

下面是自己写的一段测试代码:

import java.math.BigDecimal;

public class TestClass {

public TestClass() {

}

public static void main(String[] args){

StringBuffer test = new StringBuffer();

BigDecimal tempBig = null;

long time1 = System.currentTimeMillis();

for(int i=0;i<200000;i++){

tempBig = new BigDecimal(0);

tempBig = null;

}

long time2 = System.currentTimeMillis();

System.out.println("===="+(time2-time1)+"=======");

System.out.println("====@@@@@@@@@@@@@@@@@@@@@=======");

long time3 = System.currentTimeMillis();

for(int i=0;i<200000;i++){

tempBig = BigDecimal.valueOf(0);

tempBig = null;

}

long time4 = System.currentTimeMillis();

System.out.println("===="+(time4-time3)+"=======");

System.out.println("====@@@@@@@@@@@@@@@@@@@@@=======");

tempBig = BigDecimal.valueOf(0);

BigDecimal ddd = new BigDecimal(1);

long time5 = System.currentTimeMillis();

for(int i=0;i<200000;i++){

if(tempBig.equals(ddd)){

}

}

long time6 = System.currentTimeMillis();

System.out.println("===="+(time6-time5)+"=======");

System.out.println("====@@@@@@@@@@@@@@@@@@@@@=======");

long time7 = System.currentTimeMillis();

for(int i=0;i<200000;i++){

if(tempBig.doubleValue()==0){

}

}

long time8 = System.currentTimeMillis();

System.out.println("===="+(time8-time7)+"=======");

System.out.println("====@@@@@@@@@@@@@@@@@@@@@=======");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值