提高你的Java代码质量吧:性能考虑,数组是首选

在Java开发中,虽然集合如List、Set、Map更常用,但在处理基本类型时,数组性能更优。数组在求和计算等场景下避免了装箱和拆箱操作,降低了内存开销。数组的执行效率是集合的约10倍,特别是在性能敏感的系统中,建议优先考虑使用数组。
摘要由CSDN通过智能技术生成

一、分析 

数组在实际的系统开发中使用的越来越少,我们通常只有在阅读一些开源项目时才会看到它们的身影,在Java中它确实没有List、Set、Map这些集合使用起来方便,但是在基本类型处理方面,数组还是占优势的,而且集合的底层也是通过数组实现。 

二、场景 

比如对一个数据集求和的计算 

//对数组求和 
public static int sum(int[] datas){ 
    int sum = 0; 
    for(int i = 0; I < datas.length; I++){ 
        sum += datas[i]; 
    } 
    return sum; 
} 

对于一个int类型的数组求和,取出所有元素的数组元素并想家,此算法是基本类型则使用数组效率最高 

//对列表求和计算 
public static int sum(List<Integer> datas){ 
    int sum = 0; 
    for(int i = 0; i < datas.size(); i++){ 
        sum += datas.get(i); 
    } 
    return sum; 
} 

注意才相加求和的运算中,做了一个拆箱动作,这对于性能濒于临界的系统是比较危险的 

在初始化List的时候,要进行装箱动作,虽然有整形池在,但不在整形池范围都会产生一个新的Integer对象 


众所周知,基本类型是在栈内存操作的,而对象则是在堆内存中操作的。栈内存的特点是速度快,容量小;堆内存的特点是速度慢,容量大(从性能上讲,基本类型的处理占优势)。 

三、建议 

性能要求较高的场景中,使用数组替代集合。在实际测试中发现:对于基本类型进行求和计算时,数组的效率是集合的10倍。


新技术,新未来!欢迎大家关注 “1024工场”微信服务号 ,时刻关注我们的最新的技术讯息! (甭客气!尽情的扫描或者长按!)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值