zoukankan      html  css  js  c++  java
  • StringBuffer

      StringBuffer简介::

        StringBuffer是一个字符的缓冲区,如果需要频繁的对字符串进行拼接时,建议使用StringBuffe。

      工作原理:

        StringBuffer的底层是一个char类型的数组,如果没有明确设定,则系统会自动创建一个长度为16的char类型数组,在使用数组的时候,如果长度不够了,则会通过拷贝对数组进行扩容,所以使用StringBuffe时最好预测并且手动进行初始化长度,这样能够减少数组的拷贝,从而提高效率。

      StringBuffer与String的区别:

        String是不可变字符序列,储存在字符串常量池中

        StringBuffer的底层是char类型数组,系统会对该数组进行扩容

      StringBuffer  的构造方法:

        如果没有明确指出参数长度的话,系统会自动给一个16的长度参数。

        我个人建议我们在使用StringBuffer我们要提前预估一个长度。

        如果我们传递的是一个字符串String类型,那么这个StringBuffer的长度就是这个String类型的字符串长度+16.

      public class SKT16 {

      public static void main(String[] args) {
      //如果没有明确指出长度,系统会自动创建长度16;
      StringBuffer sb=new StringBuffer();
      System.out.println(sb.capacity());
      //明确长度一百
      //在使用这个的时候,建议预估一个长度
      StringBuffer sb1=new StringBuffer(100);
      System.out.println(sb1.capacity());
      //如果我们传递的是String类型的参数,那么这个StringBuffer长度就是参数的长度+16
      StringBuffer sb2=new StringBuffer("monkey");
      //长度为什么不是6二十22呢,因为系统会在你传递进去的字符串长度基础上+16的长度
      System.out.println(sb2.capacity());
      }
    }

  • 相关阅读:
    物理机与虚拟机互通
    error while loading shared libraries: libevent-2.2.so.1: cannot open shared object file: No such file or directory
    DateTime.Now.ToFileTime
    洛谷-P2249 【深基13.例1】查找
    洛谷-P3817 小A的糖果
    洛谷-P3612 [USACO17JAN]Secret Cow Code S
    洛谷-P5019 铺设道路
    洛谷-P2437 蜜蜂路线
    洛谷-P1044 栈
    洛谷-P1255 数楼梯
  • 原文地址:https://www.cnblogs.com/JiXianSen/p/12166416.html
Copyright © 2011-2022 走看看