String类 和 StringBuilder类的区别

博客介绍了Java中java.lang.String类和java.lang.StringBuilder类的特点。String类创建后值不可更改,实现字符串加法会创建大量字符串,占用内存多、效率低;而StringBuilder类是字符串缓冲区,支持可变字符串,实现加法时占用内存少、效率高,案例运行结果也证明了这一点,还介绍了链式编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点:

java.lang.String类
字符串是常量 ; 它们的值在创建之后不能更改。
String实现字符串加法:就会在内存中创建很多字符串占用内存,
占用内存越多,程序的效率就越低。


java.lang .StringBuilder类:
字符串缓冲区,可以提高字符串的效率,支持可变的字符串.
StringBuilder实现字符串加法,始终是一个数组,占用内存少, 所以效率高。


用到的知识:
System.currentTimeMills() / / 获取毫秒值.
public StringBuilder append(…): 添加任意类型的字符串

案 例 :

//请使用代码实现
//   分别使用String的+=和StringBuilder的append方法对字符串做100000次拼接,
//   计算String拼接100000次花费时间与StringBuilder拼接100000次所花费时间并打印。
public class Test09_currentTimeMillis {
    public static void main(String[] args) {
        // System类下的 currentTimeMillis方法
        long l = System.currentTimeMillis(); //开始的毫秒值
        String s = "ab";  // String的+=  对字符串做100000次拼接,
        for (int i = 0; i < 100000; i++) {
            s += "c" ;
        }
        long l1 = System.currentTimeMillis();//结束时的毫秒值
        long s1 = l1 - l ;  // 相减的时间就是所耗费的时间.
        System.out.println("String所耗费的时间是:"+s1+"毫秒");

        // 创建一个StringBuilder对象
        long time = System.currentTimeMillis();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 100000; i++) {
            sb.append("abc");
        }
        long time1 = System.currentTimeMillis();

        System.out.println("StringBuilder类所耗费的时间是:"+(time1-time)+"毫秒");


    }
}

运行结果如下:
这里写图片描述
根据运行结果显示,很明显StringBuilder效率更高。

知识点扩充:

链式编程:
builder.append(“hello”).append(“jian”).append(100).append(true);
System.out.println(builder);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值