zoukankan      html  css  js  c++  java
  • 关于StringBuffe()长度和初始化长度的问题归纳

    晚上做一个习题,发现了一个关于StringBuffer()长度的问题

    根据理解大致可以归为以下知识。

    直接上代码分析吧

     1 public class StringBuffer_length_capacity {
     2     public static void main(String[] args) {
     3         //注意StringBuffer默认长度为16
     4         StringBuffer s1 = new StringBuffer(1);
     5         //取值为1,初始化长度4   取值为2,初始化长度6, 取值为3,初始化长度为8,取值为4,初始化长度为
     6         //若StringBuffer中设置的长度小于我们的字符串长度,此时容器需要扩容,
     7         s1.append("12345");
     8         System.out.println("长度:"+s1.length());
     9         System.out.println("初始化长度:"+s1.capacity());
    10         }
    11     }

    假设我们的StringBuffer初始默认长度为x,我们所给的字符串长度为y

    则可得,我们的s1.length返回的长度为x

    当涉及到capacity()时候,我们需要判断

    首先1.当y<=x时:capacity取值为x

    2.当y>x时:此时我们的容器需要发生扩容

        a.如果y>2*x+2,此时s1.capacity() = s1.length();

        b.如果y≤2*x+2,可以得到此时s1.capacity = 2*x+2

    tips:StringBuffer和StringBuilder在没有初始化长度的时候,长度为16

    继续学习,js还要加油学习!!!自勉~

  • 相关阅读:
    苹果审核被拒,Guideline 1.1.6
    Java基础:类与继承
    Java中的static关键字解析
    Entity Framework 预备知识
    Entity Framework Code First执行SQL语句、视图及存储过程
    java多线程技能
    流与文件
    多线程
    集合
    断言
  • 原文地址:https://www.cnblogs.com/caoxixi/p/9892973.html
Copyright © 2011-2022 走看看