编程之路小细节-字符串拼接以及优化的浅析

工作中遇到关于程序功能的优化问题,技术主管要求尽可能在保留原有功能的情况下,进行程序中数据查询功能的代码优化。源代码查看完毕后,我决定从局部变量,加载优化,循环遍历,重复计算,应用创建,字符串的拼接等几个方面进行代码块的优化,以便更好的服务于用户的数据查询体验。


首先,在进行循环遍历的优化时,我刻意的去写了段代码测试了一下,先上图再说:


上图表示对象的创建在循环外部。



上图表示对象的创建在循环内部。

由以上两图比较可以得到结果:在循环中,把创建对象的动作放在其外部,会极大地提高软件的性能。因为如果将创建对象的动作放在循环内部的话,会在每次循环的时候,都将创建一个新的对象,这样会增加软件的运行时压力,也会浪费大量的存储空间。


然后,在字符串拼接的优化中,我发现StringBuilder类的明显优势。让我们先来了解一下String、StringBufferStringBuilder的之间的关系以及性能。

String:不可改变的量,即字符串创建后不可修改。

StringBuffer:可变字符串序列,即StringBuffer对象的值是可变的。

StringBuilder:可变字符串序列,即StringBuilder对象的值是可变的。

三者在性能方面:(大部分情况下)String < StringBuffer < StringBuilder。其原因是 String 操作是创建新的String对象,而StringBuffer和StringBuiler只是一个字符数组的扩容。

StringBuffer 和 StringBuilder 的不同点很重要,就是线程安全性。StringBuffer是线程安全的,StringBuilder是非线程安全的,这也是有失必有得吧。


废话也这么多了,主要是StringBuilder类的机制是通过扩展字符数组而进行数据存储,而常用的字符串拼接符号“ + ”则是相当消耗内存和性能的。以下为String类和StringBuilder类的代码测试图:


上图为String类的字符串拼接代码测试效果图。



上图为StringBuilder类的字符串拼接代码测试效果图。

通过上面两张图表展示内容的对比,可以看出:字符串拼接的功能上StringBuilder类的效率远远高于String类。


工作中的一点一滴,都是进步的基石。一步一个脚印,努力向前。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值