【学习总结】java高级特性之String、StringBuffer、StringBuilder
2016-12-21 12:35
639 查看
1.String:java中字符串值属于String类,java编译器把字符串值作为String对象;但String对象一旦创建就不能改变,如果需要进行大量的字符串操作,应该使用StringBuffer/StringBuilder类或者字符数组,最终可以被转换成String对象。
2.StringBuffer:线程安全的可变字符序列;一个类似于String字符串缓冲区,通过某些方法调用可以改变字符串的长度和内容;每个字符串都有缓冲区,只要字符串缓冲取包含的字符序列没有超出此容量。就无序分配新的内部缓冲区数组;如果缓冲区溢出,则此容量自动增大。缺点:操作速度比较慢。
常用方法代码:
//弱点:线程是安全的,但底层操作速度比较慢
StringBuffer buffer = new StringBuffer("abcde");
System.out.println(buffer);
//拼接
buffer.append("+edbca");
System.out.println(buffer);
//截取字符串
System.out.println(buffer.substring(1, 4));
//取索引位置字符
System.out.println(buffer.charAt(1));3.StringBuilder:JDK5以后,为StringBuffer补充了一个单个线程使用的等价类,即,StringBuilder,通常应该优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度快。
常用方法代码:
//StringBuilder对象
StringBuilder builder = new StringBuilder("aaaaa");
//拼接字符串
System.out.println(builder.append("+bbbbb"));
//截取字符串
System.out.println(builder.substring(4,8));
//取字符索引位置字符
System.out.println(builder.charAt(8));
//字符串长度
System.out.println(builder.length());
//返回当前容量
System.out.println(builder.capacity());
//移除指定范围的字符串,包头不包尾
System.out.println(builder.delete(0, 6));
//移除指定索引处的字符串
System.out.println(builder.deleteCharAt(0));
//将指定字符插入
System.out.println(builder.insert(1, "abc"));
//替换字符串
System.out.println(builder.replace(1, 4, "def"));
//转换成字符串
System.out.println(builder.toString());
//返回此字符串的指定子字符串中第一个出现的索引(indexOf/lastIndexOf)
System.out.println(builder.indexOf("e"));
具体介绍详见JDK API文档。
2.StringBuffer:线程安全的可变字符序列;一个类似于String字符串缓冲区,通过某些方法调用可以改变字符串的长度和内容;每个字符串都有缓冲区,只要字符串缓冲取包含的字符序列没有超出此容量。就无序分配新的内部缓冲区数组;如果缓冲区溢出,则此容量自动增大。缺点:操作速度比较慢。
常用方法代码:
//弱点:线程是安全的,但底层操作速度比较慢
StringBuffer buffer = new StringBuffer("abcde");
System.out.println(buffer);
//拼接
buffer.append("+edbca");
System.out.println(buffer);
//截取字符串
System.out.println(buffer.substring(1, 4));
//取索引位置字符
System.out.println(buffer.charAt(1));3.StringBuilder:JDK5以后,为StringBuffer补充了一个单个线程使用的等价类,即,StringBuilder,通常应该优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度快。
常用方法代码:
//StringBuilder对象
StringBuilder builder = new StringBuilder("aaaaa");
//拼接字符串
System.out.println(builder.append("+bbbbb"));
//截取字符串
System.out.println(builder.substring(4,8));
//取字符索引位置字符
System.out.println(builder.charAt(8));
//字符串长度
System.out.println(builder.length());
//返回当前容量
System.out.println(builder.capacity());
//移除指定范围的字符串,包头不包尾
System.out.println(builder.delete(0, 6));
//移除指定索引处的字符串
System.out.println(builder.deleteCharAt(0));
//将指定字符插入
System.out.println(builder.insert(1, "abc"));
//替换字符串
System.out.println(builder.replace(1, 4, "def"));
//转换成字符串
System.out.println(builder.toString());
//返回此字符串的指定子字符串中第一个出现的索引(indexOf/lastIndexOf)
System.out.println(builder.indexOf("e"));
具体介绍详见JDK API文档。
相关文章推荐
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- java高级特性之--String 、StringBuffer、StringBuilder
- 黑马程序员 Java学习总结之StringBuilder和StringBuffer
- java学习---String、StringBuffer与StringBuilder之间区别
- Java高级特性之反射学习总结
- 【Java学习笔记】String、StringBuffer和StringBuilder
- java学习笔记之String,StringBuilder和StringBuffer
- JAVA知识点总结(六)String、StringBuffer、StringBuilder
- Java学习笔记之String、StringBuffer和StringBuilder
- java中String、StringBuffer、StringBuilder的总结
- java学习—探秘Java中的String、StringBuilder以及StringBuffer
- Java学习札记14:一个比较String、StringBuffer和StringBuilder之间效率差别的简单例子
- Java学习札记13:浅析Java中的String、StringBuffer和StringBuilder的区别
- 你不知道的Java学习笔记12--String、StringBuffer、StringBuilder比较
- 【幻化万千戏红尘】qianfengDay13-java基础学习:String ,StringBuilder,StringBuffer,Date,Calendar
- Java学习(二):String、StringBuffer和StringBuilder
- JavaString、StringBuilder、StringBuffer总结
- 【Java学习】String、StringBuffer和StringBuilder
- Java中 String、StringBuffer 、StringBuilder 总结