StringBuffer与Stringbuilder

来源:互联网 发布:pc蛋蛋机器人源码 编辑:程序博客网 时间:2024/06/11 21:24

StringBuffer的常用操作方法
StringBuffer的常用操作方法1

StringBuffer的常用操作方法2

StringBuilder

一个可变的字符序列。此类提供一个与StringBuffer兼容的API,但不保证同步。该类被设计用作StringBuffer
的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普通)。如果可能,建议优先采用该类,
因为在大部分实现中,StringBuilder
比StringBuffer
快。

因为有(synchronized)修饰,线程安全StringBuilder:无(synchronized)修饰,线程不安全(多线程时会出问题)

注:synchronized 关键字表示同步

StringBuffer小例子

public class StringBuffer01 {    public static void main(String[] args) {        String s = "明明";        //默认字符数组的大小是16        //扩展方式:(原来的长度+1)*2        //如果我们可以确定整个长度,可以调用带初始容量的构造方法        StringBuffer sb = new StringBuffer();//生命StringBuffer方法        sb.append("今天去奶奶家、");//拼接字符串        sb.append("明天去舅舅家,");        sb.append("后天自己在家里玩");        System.out.println(s+sb);//输出:明明今天去奶奶家、明天去舅舅家,后天自己在家里玩        //删除指定位置的字符串,包含开始位置,不包含结束位置        sb.delete(19, 21 );        System.out.println(sb.toString());//今天去奶奶家、明天去舅舅家,后天自己在玩        //查询去第一次出现的位置        int index = sb.indexOf("去");        System.out.println("去的位置是:"+index);//去的位置是:2(从0开始数)        //插入方法        sb.insert(19, "家里");        System.out.println(sb);//今天去奶奶家、明天去舅舅家,后天自己在家里玩        //替换方法        sb.replace(0, 2, "现在");        System.out.println(sb);//现在去奶奶家、明天去舅舅家,后天自己在家里玩        //反转        sb.reverse();        System.out.println(sb);//玩里家在己自天后,家舅舅去天明、家奶奶去在现        //字符串截取        String s1 = sb.substring(9);        System.out.println(s1);//家舅舅去天明、家奶奶去在现        String s2 = sb.substring(0, 7);        System.out.println(s2);//玩里家在己自天        //StringBuilder:synchronized 关键字表示同步(多线程时会出问题)        /*         * 单线程访问时使用,效率更高,线程不安全         * StringBuffer:多线程访问时使用,效率较低,线程安全(JDK1.5后新增加的一个类)         */        StringBuilder sb2 = new StringBuilder();    }}
0 0
原创粉丝点击