欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

String与StringBuffer的区别

程序员文章站 2022-05-22 09:44:51
...
这个问题确实在很多面试都碰到过,一般也就是说string是可变的,stringbuffer是不可变的。而且stringbuffer比string的执行效率更高,但是一旦被问到为什么执行效率更高呢。。。。我就悲剧了String与StringBuffer的区别
            
    
    博客分类: Java基础 面试JDK  。。。这是一位仁兄的解释:
引用

3:String 与StringBuffer的区别

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

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

以把字符串设为共享的。

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

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

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

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

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


觉得挺有道理的。
相关标签: 面试 JDK