• StringBuilder -字符串缓冲区,节约内层空间变长数组


     1 package cn.learn;
     2 /*
     3 字符串缓冲区 -缓冲可提高效率
     4 java.lang.StringBuilder
     5 字符串的底层是一个被final修饰的数组,不能改变,是一个常量
     6 private final byte[] value;
     7 也就是说在字符串相加时,会生成多个字符串,占用空间效率低下
     8 eg:String str = "a"+"b"+"c"
     9 会有a,b,c,ab,abc五个字符串,jdk1.5以后用的是SttingBuilder.append("a").append.
    10 
    11 而StringBuilder类,可提高效率(可以看成一个长度可以变换的字符串)
    12 byte[] value = new byte[16];  //默认长度16
    13 注:StringBuilder在内存中始终是一个数组,占用空间少,效率高,如果超出了StringBuilder
    14 的容量会自动扩容
    15 底层是一个没有被final修饰的数组,可以改变长度
    16 
    17 使用StringBuilder,添加数据元素不会改变数组的源地址,即不会生成新数组
    18 
    19 
    20  */
    21 public class StringBuilderApi {
    22     public static void main(String[] args) {
    23         //无参构造,默认长度16,里面为空白
    24         StringBuilder str = new StringBuilder();
    25         //有参构造,实际是把String转换了StringBuilder
    26         StringBuilder str1 = new StringBuilder("cn.learn");
    27         System.out.println(str1);  //cn.learn
    28         //添加数据,返回对象当前本身即可以再进行添加 append(附加),即不生成新数组
    29         System.out.println(str1.append(".huxiaobai").append(".dada"));
    30 
    31 
    32         //toString,可以将StringBuilder转换为toString,有参构造可以传对象
    33         StringBuilder toStr= new StringBuilder(str1);
    34         System.out.println(toStr.toString());
    35 
    36     }
    37 
    38 
    39 }
  • 相关阅读:
    jenkins任务
    追涨手段
    识别上升浪中的假反弹假阻力
    上升浪的判断
    点位超过10的上涨高位转折点
    纯碱下跌巨幅捕捉
    纯碱规律
    玉米
    iOS基础之界面通信
    iOS基础之UINavigationController(导航视图控制器)
  • 原文地址:https://www.cnblogs.com/huxiaobai/p/11488844.html
Copyright © 2020-2023  润新知