StringBuffer类与string类的区别

与String的区别:

1.   StringBuffer的运行效率更快,因为没有产生中间垃圾对象,一直在原来的值上修改。而String会产生很多中间对象,我们只关心最后的结果,所以这些中间对象都是垃圾,产生了中间变量,导致运行效率低。

2.   StringBuffer用于生成字符串,String用于表示字符串。

3.   StringBuffer是“可变化的量”,也就是在运行时可以修改,不必产生中间对象。String是常量,不可修改,所以会产生中间对象。

示例如下:

packagestringbuffer;

publicclass Demo1 {

    public static void main(String[] args) {

       String s = "";

       StringBuffer sb = new StringBuffer();//创建一个StringBuffer对象

       System.out.println(System.currentTimeMillis());//s=s+i时,输出当前时间是:1524809612430             执行sb.append(i)时,输出当前时间是:1524809728105;

       for(int i = 1;i<=1000;i++){

           sb.append(i);//StringBuffer对象在原字符串的基础上,不断追加,修改了原来的值,得到的是一个最终的结果,没有中间垃圾对象的产生。

           //s = s+i;//因为string是常量,一旦确定,不可修改。所以每次string在做字符串相加的时候,都会产生新的对象,导致中间过程产生了很多字符串常量垃圾对象。与StringBuffer相比,效率低很多。

       }     

       System.out.println(System.currentTimeMillis());//s=s+i时,输出当前时间是:1524809612440,运行了10ms       执行sb.append(i)时,输出当前时间是:1524809728105;说明StringBuffer运行效率高。

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QYHuiiQ

听说打赏的人工资翻倍~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值