Android之Java基础String与StringBuffer

借用别人总结的一句话就是:常量和变量之间的关系.

String的内容是不可变的,StringBuffer是可变的;

String的内容被指定之后,再次赋值,其实是创建了一个新的对象在方法区,也就是说其实创建了两个对象.

StringBuffer的内容可变,对其进行增删改还是同一个对象,所以需要对字符串进行频繁操作的,建议使用StringBuffer,效率比String高很多.

除此之外,还有一个Stringbuilder,也是字符串常量,但是StringBuilder是线程不安全的,StringBuffer是线程安全的.相反的是StringBuilder的效率要比StringBuffer高.

若需要对字符串频繁操作,建议使用StringBuffer,但是若是所在单线程里面使用的话,可以换成StringBuilder.

总结:

StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,769评论 18 399
  • 集合框架: 1)特点:存储对象;长度可变;存储对象的类型可不同2)Collection(1)List:有序的;元素...
    Demo_Yang阅读 1,286评论 0 4
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,143评论 0 62
  • NodeJS是一个JS脚本解析器,任何操作系统下安装NodeJS本质上做的事情都是把NodeJS执行程序复制到一个...
    april_Dong阅读 164评论 0 0
  • 很多人这辈子都过得小心翼翼,如履薄冰,不肯涉险。读书的时候,老师提问,心里明明已有了答案,却很少会主动举手,直到在...
    文艺女青年专治各种不服阅读 1,268评论 6 21