类(StringBuffer和String)

  StringBuffer–这个我称它为可变的类,它和String最大的区别就在去一个是不可变一个是可变!

  这个时候就有人问,什么是可变什么是不可变!

 下面个的实例(中会用到一个append方法这个是增加):

%title插图%name

%title插图%name

上面是String和StringBuffer的实例化

但这个和我们今天说的可变和不可变有什么关系呢?

在看看下的实例:

%title插图%name %title插图%name

  两者的区别和效率就出来了,上边的代码的效率很低,因为创建了21个对象(开始的一个和循环20次创建的20个);而下边的代码的效率很高,因为只创建了一个StringBuffer对象,最后用toString方法转化为String对象,总结起来就是一个StringBuffer对象和String对象的消耗(2个)。

String和StringBuffer一些共性:

  1. 都是用来处理字符串的。
  2. 都提供了 length() , toString() ,charAt() , substring() 方法 ,用法一样。
  3. 对于String 类和 StringBuffer 类,字符在字符串中的索引位置都从0开始。

String和StringBuffer主要区别:

  1. String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的(String对象不可修改指的是对象本身不可修改,而不是引用不可修改)。
  2. String 类覆盖了Object类的 equals()方法,StringBuffer类没有覆盖。
  3. 都覆盖了Object()类的 toString() 方法,实现不一样。String类的toString() 方法返回当前String实例本身的引用。 StringBuffer类的toString方法返回一个以当前StringBuffer的缓冲区中的所有字符串为内容的新的String对象的引用。
  4. String 对象可以用 操作符 “+ “进行连接,StringBuffer不能。
© 版权声明
THE END
喜欢就支持以下吧
点赞2
分享
评论 抢沙发

请登录后发表评论