String 和StringBuffer的区别

 string和stringBuffer的区别 基本的总结下

一、在java中3个类来负责字符的操作

(1)Character  :进行单个字符操作的

(2)String : 对一传字符进行操作,不可以改变类。

(3)StringBuffer:也是对一串字符进行操作,但是可变类。

 

二、区别

String

          (1)是对象但不是原始对象,问不可变对象一旦被创建,就不能修改它的值.

           (2)对于已经掺在的String 修改都是重新创建一个新的对象,然后把新值保存进去。

            (3)String是final类,不能被继承。

StrngBuffer

                (1)是一个可变对象,修改值得时候不会像S天ring那样重新建立对象。

                (2)他只能通过构造函数来建立 例如:StringBuffer sb = new StringBufer;

                (3)不能通过赋值符号进行赋值,如 sb=“this is  jinbo ”// 这是错误的。

                 (4)对象建立后在内容中分配空间,病初始保存一个NULL,赋值的时候通过append方法 例如:ab。append(” append");

总之:如果在程序中要对字符串进行频繁的修改连接操作的话StringBuffer 要比String效率上高好多。

            String str  = newString("hello");

            str = str+"world";

            处理的步骤相当于建立一个StringBuffer 然后调用 append方法,最后StringBuffer的 toString  后  赋值给Str;

             测试例子:

              String temper str= “12345678910”;

             int  times = 5000;

             long Istart1=System.currentTimeMilis();

             String str = "";

              for(int 1=0; i<times; i++){

                     str +=tempstr;

             }

              long end = System.currentTimeMIlis();

              long time = (lend1-Istart1) ;

             System.out.Println(time)   ;

 

    第二种:

             String tempstr = "12345678910";

             int times = 5000;

             long  Istart2=System.currentTimeMilis();

             StingBuffer sb = new StringBuffer();     

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

                   sb.apend(tempstr)

               }   

             long end2 = System.currentTimeMilis();

             long time = (lend2 - Istart2);

            System,out.Println(time);

            结果如何 自己试试吧

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值