当前文章收录状态:
查询中...
StringBuffer–这个我称它为可变的类,它和String最大的区别就在去一个是不可变一个是可变!
这个时候就有人问,什么是可变什么是不可变!
下面个的实例(中会用到一个append方法这个是增加):
上面是String和StringBuffer的实例化
但这个和我们今天说的可变和不可变有什么关系呢?
在看看下的实例:
两者的区别和效率就出来了,上边的代码的效率很低,因为创建了21个对象(开始的一个和循环20次创建的20个);而下边的代码的效率很高,因为只创建了一个StringBuffer对象,最后用toString方法转化为String对象,总结起来就是一个StringBuffer对象和String对象的消耗(2个)。
String和StringBuffer一些共性:
- 都是用来处理字符串的。
- 都提供了 length() , toString() ,charAt() , substring() 方法 ,用法一样。
- 对于String 类和 StringBuffer 类,字符在字符串中的索引位置都从0开始。
String和StringBuffer主要区别:
- String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的(String对象不可修改指的是对象本身不可修改,而不是引用不可修改)。
- String 类覆盖了Object类的 equals()方法,StringBuffer类没有覆盖。
- 都覆盖了Object()类的 toString() 方法,实现不一样。String类的toString() 方法返回当前String实例本身的引用。 StringBuffer类的toString方法返回一个以当前StringBuffer的缓冲区中的所有字符串为内容的新的String对象的引用。
- String 对象可以用 操作符 “+ “进行连接,StringBuffer不能。
© 版权声明
1
本站网络名称:
明恒博客
2
本站永久网址:
www.zym88.cn
3 本站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容