Java 字符串连接

  1. 对于一次性初始化且后面不要修改的长字符串,直接用+操作符连接。这是很常用的场景,一般代码编辑器如eclipse,或者source insight 对行代码的长度都是有限制的。如:拼接数据库里面一个查询语句,字段特别多,查询特别复杂,就必须用+号去连接字符串,提高代码可读性。

  2. 对于中间有变量,需要动态拼接字符串,特别在循环内部或者大量连接操作时,必须要用StringBuffer或者StringBuilder,用+号操作符连接速度和效率特别差。

public class Test {
    public static void main(String[] args) {

        String str = "";
        StringBuffer sb = new StringBuffer();
        StringBuilder sbu = new StringBuilder();
        long start = 0L;
        long end = 0L;
        start = System.currentTimeMillis();
        for (int i = 0; i < 9999; i++) {
            str = str + "a";
        }
        end = System.currentTimeMillis();
        System.out.println("使用string的时间是:" + (end - start) + "毫秒!");

        start = System.currentTimeMillis();
        for (int i = 0; i < 9999; i++) {
            sb.append("a");
        }
        end = System.currentTimeMillis();
        System.out.println("使用StringBuffer的时间是:" + (end - start) + "毫秒!");

        start = System.currentTimeMillis();
        for (int i = 0; i < 9999; i++) {
            sbu.append("a");
        }
        end = System.currentTimeMillis();
        System.out.println("使用StringBuilder的时间是:" + (end - start) + "毫秒!");
    }

}
//运行结果:
使用string的时间是:60毫秒!
使用StringBuffer的时间是:1毫秒!
使用StringBuilder的时间是:0毫秒!

注意:Java 1.5发行版本中新增加了非同步的StringBuilder类,用于补充同步的StringBuffer类,在多线程环境下推荐使用StringBuffer类。一般情况下两者性能差异不大,在100万次循环下,StringBuilder也只快了几十毫秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值