String 与StringBuffer的区别

 

 String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独

字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可

以把字符串设为共享的。

   StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用

StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得

多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大

的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使

用StringBuffer类就避免了这个问题.

 

String 是不可以变的字符串. 

StringBuffer 是可变的字符串.

对StringBuffer进行操作,是在原来的对象之上进行改变. 而对String进行操作,是创建新的对象. 

 

Java代码
  1. public class testStringStringBuffer {
       public static void stringReplace (String text) {    
       text = text.replace('j' , 'i');  
       System.out.println (text); 
       }    
           
       public static void bufferReplace (StringBuffer text) {    
       text = text.append("C");     
       }    
           
        public static void main (String args[]) {     
        String textString = new String ("java");     
        StringBuffer textBuffer = new StringBuffer ("java");     
            
        stringReplace (textString);     
        bufferReplace (textBuffer);     
            
        System.out.println (textString + textBuffer);     
        }     
    
    }
    
    

 

Java代码 输出结果:   
  1. iava    
  2. javajavaC   

区别就是一句话:

String引用改变指向一个新的地址,

StringBuffer引用不变指向自己本身


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值