N2.String,StringBuffer,StringBuilder

String

创建的String类字符串其长度是固定的,虽然使用“+”可以达到附加新字符或字符串的目的,但会产生一个新的String实例,会在内存中创建新的字符串对象。

StringBuffer、StringBuilder

两个类都是可变的字符序列的类,大大提高了频繁增加字符串的效率。StringBuffer支持并发操作,线性安全;StringBuilder不支持并发操作,非线性安全,但在单线程中的性能比StringBuffer高。

常用方法

修改指定字符

public void setCharAt(int index,char ch)     将给定索引处的字符修改为ch;

插入字符串

insert(int offset,String str)     将字符串插入此字符序列中

字符串反序

reverse()     将字符串反序输出

删除子字符串

delete(int start,int end)   移除此序列的子字符串中的字符。注:左闭右开

追加字符串

append()

三者之间的转换

String<-->StringBuffer/StringBuilder:                                                                                    String str=“String”;                                                                                                                     StringBuffer/StringBuilder sb=new StringBuffer/StringBuilder(str);

    str=sb.toString();

StringBuffer<-->StringBuilder

   StringBuffer sbf=new StringBuffer(sbr.toString());                                                                    StringBuilder sbr=new StringBuilder(sbf.toString());    

适用场景

(1)操作少、数据少,用String。

(2)单线程、操作多、数据多,用StringBuilder。

(3)多线程、操作多、数据多,用StringBuffer。

推荐阅读更多精彩内容

  • Tip:笔者马上毕业了,准备开始 Java 的进阶学习计划。于是打算先从 String 类的源码分析入手,作为后面...
    石先阅读 11,695评论 16 58
  • final关键字(最终) final修饰的类无法被继承. final修饰的方法无法被覆盖. final修饰的局部变...
    yangliangliang阅读 541评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 30,451评论 18 399
  • [TOC] StringBuffer类 StringBuffer类概述及其构造方法 StringBuffer类概述...
    lutianfei阅读 341评论 0 1
  • 我爱秋天 我爱秋天的天 我爱秋天的天的高 我爱秋天的天的远 我爱秋天的天的净 我爱秋天的天的蓝 那种蓝象海水 蓝得...
    村夫2017阅读 209评论 0 1
  • 近段日子,过得闷闷的,心情潮潮的,犹如那滑石上的青苔,拿在手上呲呲黏黏的。 或许并没有什么真正是令我揪心的要时...
    晴天妈咪莉阅读 223评论 1 0
  • 阿南,女,24岁,程序猿,拥有魔鬼身材的姑娘,一个人在北京。 第一次见她的时候我好奇怎么会有冰霜一...
    方知卿阅读 100评论 0 0
  • 遇见,云 被夕阳的火烧穿 片片掉落 漂浮在宁静的湖面 这是云的灰烬 落在行走人的肩头 岁月叫住了匆匆的人的步子 停...
    湛蓝黑眼圈凡徒阅读 91评论 0 0