0
点赞
收藏
分享

微信扫一扫

Linux(centos7)缺失.bashrc文件登录出现bash-4.2

一世独秀 2023-06-27 阅读 100

StringBuilder和StringBuffer

目录

特点

封装了char[]数组
是可变的字符序列
提供了一组可以对字符内容修改的方法
常用append()来代替字符串做字符串连接”+”
内部字符数组默认初始容量是16:super(str.length() + 16);
如果大于16会尝试将扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充到需要的容量大小。int newCapacity = value.length * 2 + 2;
StringBuffer 1.0出道线程安全,StringBuilder1.5出道线程不安全

常见方法

append()

练习:测试字符串连接

创建包: cn.tedu. api
创建类: TestString3.java

package cn.tedu.api;
/**本类用于练习字符串的拼接*/
public class TestString3 {
    public static void main(String[] args) {
        //需求:将26个字母拼接10000次
        String s = "abcdefghijklmnopqrstuvwxyz";
        //method1(s);//使用方式1拼接字符串
        method2(s);//使方式2拼接字符串
    }

    private static void method2(String s) {
        //1.创建工具类对象
        StringBuffer sb = new StringBuffer();
        StringBuilder sb2 = new StringBuilder();
        //5.1获取开始时间
        long t1 = System.currentTimeMillis();
        //2.拼接10000次
        for (int i = 0; i < 10000; i++) {
            //3.使用工具类的append()对字符串s进行拼接
            //sb.append(s);
            sb2.append(s);
        }
        //5.2获取结束时间
        long t2 = System.currentTimeMillis();
        //4.打印拼接后的效果
        //System.out.println(sb);
        System.out.println(sb2);
        //5.3计算拼接耗费的时间
        System.out.println(t2-t1);
    }

    private static void method1(String s) {
        //1.定义一个变量,用来保存最终拼接的效果
        String result = "";
        //2.创建循环拼接10000次
        //5.给程序添加一个计时的功能
        //5.1获取循环开始的时间
        long t1 = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            //3.进行字符串拼接
            result = result+s;
        }
        //5.2获取循环结束的时间
        long t2 = System.currentTimeMillis();
        //4.打印查看拼接完毕的效果
        System.out.println(result);
        //5.3计算拼接总共耗费的时间
        System.out.println(t2-t1);
    }
}

StringBuilder和StringBuffer的区别

1.在线程安全上 :
–StringBuffer是旧版本就提供的,线程安全的。@since JDK1.0
–StringBuilder是jdk1.5后产生,线程不安全的。@since 1.5
2. 在执行效率上,StringBuilder > StringBuffer > String
3.源码体现:本质上都是在调用父类抽象类AbstractStringBuilder来干活,只不过Buffer把代码加了同步关键字,使得程序可以保证线程安全问题。
在这里插入图片描述
在这里插入图片描述

举报

相关推荐

0 条评论