StringBuilder StringBuffer 速度比String 要快(字符串拼接)相差速度可能达到上千上万倍拼接字符串越大速度相差越大
StringBuilder StringBuffer Builder 线程不安全 Buffer线程安全 安全的速度要稍微慢于不安全的速度(这两个拼接速度不会相差太多)
10个一下的拼接用哪个都可以超过之后一般用 Builder
这是string 拼接 4万毫秒差不多
内部原理:
buffer每次加减在不超过原空间大小的时候不会申请新空间进行 是在原地址空间进行;string拼接需要每次相加进行地址空间的申请 造成空间和时间的浪费
cpu运算一次 0.2到0.3纳秒 从 cpu到内存 20纳秒;
读取信息 先读取信息的地址(操作一个数据之前要指定他的地址);
假设有一个2000B的数据 CPU需要读取2000次地址 来回一次40纳秒 总共需要80000纳秒;
因为存储单元只有一字节,如果把一个存储单元换成100字节,,这时候来回交汇的速度变快(一次读取的多了自然就快了)
一字节八比特是计算机的基本存储单元;
操作系统在原有存储单元上进行了划分 把一个存储单元改为了4KB,因此传输速度变成了之前的4*1024/1=4096倍;这个单元成为页块单元;这时也需要对他们的地址进行重定位,重新划分后额外需要一小块内存内的空间重新记录下来(页块)存储单元的地址;
由于一个存储单元内 存入一个以上的变量 只记录本存储单元的第一个地址 因此在存储单元里面只能存入一个变量 多出来的空间会浪费掉;(如果存入一个以上变量别的取不出来了)同理在磁盘上也相同 一个扇区只能存放一个文件 大小也是4KB;(内部是这样的)