前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >类(StringBuffer和String)

类(StringBuffer和String)

作者头像
你的明明呐丶
发布2022-06-27 11:18:12
2880
发布2022-06-27 11:18:12
举报
文章被收录于专栏:用户4184852的专栏

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

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

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

上面是String和StringBuffer的实例化

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

在看看下的实例:

  两者的区别和效率就出来了,上边的代码的效率很低,因为创建了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不能。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档