You辉编程_String、StringBuffer、StringBuilder测试

package com.java.java6.CommonClass;

/**
 * @Author youHui
 **/
public class Str {
    public static void main(String[] args) {
        //test1();
        test2();
    }
    public static void test1(){
        //StringBuffer StringBuilder的创建
        /**
         * 父类都是AbstractStringBuilder
         */

        //synchronized:线程同步
        StringBuffer sb = new StringBuffer();//线程安全,做线程的同步检查,效率低


        StringBuilder sb1 = new StringBuilder();//线程不安全,不做线程同步检查,效率高

        //末尾加内容
        sb.append("a");
        sb.append("b");
        sb.append("c").append("d").append("e");
        System.out.println(sb);

        sb1.append("云南昆明");
        //插入内容
        sb1.insert(0,"安宁").insert(1,"市");
        System.out.println(sb1);

        sb1.delete(0,2);//[0,2)
        sb1.deleteCharAt(0);//指定删除某个位置的元素
        System.out.println(sb1.reverse());//逆序
    }

    public static void test2(){
        //StringBuffer StringBuilder相关效率测试
        String str = "";
        long num1 = Runtime.getRuntime().freeMemory();//获取JVM剩余空间,单位是字节
        long time1 = System.currentTimeMillis();//获取当前时刻,单位毫秒
        for(int i=0;i<=5000;i++){
            str+=i;//相当于会创建5000个字符串对象
        }
        long num2=Runtime.getRuntime().freeMemory();
        long time2=System.currentTimeMillis();
        System.out.println("String占用内存:"+(num1-num2));
        System.out.println("String占用的时间为:"+(time2-time1)+"毫秒");

        //System.out.println(str);//效率低
        System.out.println("使用可变字符序列,完成拼接===========");
        StringBuilder sbi = new StringBuilder();
        long num11 = Runtime.getRuntime().freeMemory();//获取JVM剩余空间,单位是字节
        long time11 = System.currentTimeMillis();//获取当前时刻,单位毫秒
        for(int i=0;i<=5000;i++){
            sbi.append(i);
        }
        long num22=Runtime.getRuntime().freeMemory();
        long time22=System.currentTimeMillis();
        System.out.println("StringBuilder占用内存:"+(num11-num22));
        System.out.println("StringBuilder占用的时间为:"+(time22-time11)+"毫秒");

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值