学习笔记~ StringBuilder

单个字节存储速度在15--20ns之间

单个存储单元越 大(小) ,存储速度越 快 (慢),但单个空间中 浪费越严重(使用越充分)

内存和 磁盘 4kb一个存储单元(页) ,但磁盘可划分

任何一个变量至少消耗4kb

(数组 在一个存储单元之内

ascll编码 几个字节几个字节空间)

long start = System.currentTimeMillis(); //获取开始时间

String a=" ";

for(int i=0;i<1000;i++){ 

a+=i;

}

long end = System.currentTimeMillis(); //获取结束时间

System.out.println("程序运行时间:" + (end - start) + "ms");

仅用String 定义a时 这样循环一千次 在3ms到4ms 这样看不出快慢还

当 循环一万次  时间在220ms到260ms左右

当 循环十万次时间花费有这么多

不够好!可以用Stringbuilder

long start= System.currentTimeMillis(); //获取开始时间
StringBuilder a=new StringBuilder();

for(int i=0;i<100000;i++){
a2.append(i+"");
}

long end= System.currentTimeMillis(); //获取结束时间

System.out.println("程序运行时间:" + (end- start) + "ms");

在十万次循环下耗费时间很少。

 还有一个 StringBuffer 内部原理与StringBuilder一样,但是是多线程下的安全版本,因为加锁啦。。比StringBuilder相对慢了一丢丢。

 StringBuffer 申请的空间足够大,不用每次循环申请新的地址,但如果超出,会成倍的申请空间

StringBuffer和StringBuilder都是基于字符数组。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值