测试可变字符序列和不可变字符序列使用的陷阱

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

        //使用Stringi进行字符串的拼接
        String str8="";
        //本质上使用String Builder进行拼接,但是每次循环都会产生一个String Builder对象
        long num1=Runtime.getRuntime().freeMemory();//获取系统剩余内存
        long time1=System.currentTimeMillis();//获取系统的当前时间
        for(int i=0;i<5000;i++){
            str8=str8+i;//相当产生了10000个对象
        }
        long num2=Runtime.getRuntime().freeMemory();//获取系统剩余内存
        long time2=System.currentTimeMillis();//获取系统的当前时间
        System.out.println(num2-num1);
        System.out.println(time2-time1);

        //使用String Builder进行字符串拼接
        StringBuilder sb=new StringBuilder();
        long num3=Runtime.getRuntime().freeMemory();//获取系统剩余内存
        long time3=System.currentTimeMillis();
        for(int i=0;i<5000;i++){
            sb.append(i);
        }
        long num4=Runtime.getRuntime().freeMemory();//获取系统剩余内存
        long time4=System.currentTimeMillis();
        System.out.println(num3-num4);
        System.out.println(time4-time3);
    }
}

运行结果:

5538408
104
0
1

你可能感兴趣的:(错误,基础)