Stringbuffer扩容

public class A {
public static void main(String[] args) {
StringBuffer ab=new StringBuffer();
String a ="1111111111111111";
String a1 = "";
ab.append(a);
System.err.println(ab.capacity());
ab.append("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111");
System.err.println(ab.capacity());
ab.append("1");
System.err.println(ab.capacity());
}
}

运行结果:

16
116
234

时间: 2024-08-29 17:11:39

Stringbuffer扩容的相关文章

String、StringBuffer与StringBuilder比较

关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:     StringBuilder > StringBuffer  >  String 为什么String的执行速度最慢? String:字符串常量 StringBuffer:字符串变量 StringBuilder:字符串变量 从上面的名字可以看到,String是"字符串常量",也就是不可改变的对象.对于这句话的理解你可能会产

String、StringBuffer与StringBuilder介绍

a { color: #607fa6; text-decoration: none } .rich_media_title { padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid #e7e7eb } .rich_media_meta { display: inline-block; vertical-align: middle; margin-right: 8px; margin-bottom: 10px; fo

【剑指offer】字符串替换

请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. *StringBuffer 扩容 str.setLength(扩容大小) *思路:将原字符数组扩容至目标大小后,从后往前移动字符串,可大大减小移动次数 public class Solution {         public String replaceSpace(StringBuffer str) {           

分析可变形字符串序列StringBuilder 以及 StringBuffer之默认大小与扩容

默认值初始化: 1.  首先明确 StringBuffer类与 StringBuilder类均继承了抽象类 AbstractStringBuilder类 无参构造方法 2. 源码中StringBuffer类和StringBuilder类初始化均调用父类的构造方法: 父类初始化: 子类默认传入值16 给父类初始化字符数组 有参构造方法: 扩容算法: 使用append()方法在字符串后面追加东西的时候,如果长度超过了该字符串存储空间大小了就需要进行扩容:构建新的存储空间更大的字符串,将久的复制过去:

String stringbuffer StringBuilder

最近指导几位新人,学习了一下String,StringBuffer和StringBuilder类,从反馈的结果来看,总体感觉学习的深度不够,没有读出东西.其实,JDK的源码是越读越有味的.下面总结一下我读这些源码的收获吧.注意:虽然源码的版本是JDK6,但是个人觉得学习这个版本的源码对于理解数据结构非常有帮助,因为String就是一个数据结构,它是char []的封装,实现了很多对char []的操作 第一部分:String源码解析 (1)String实现了CharSequence接口,这个接口

从为什么String=String谈到StringBuilder和StringBuffer

前言 有这么一段代码 1 public class TestMain 2 { 3 public static void main(String[] args) 4 { 5 String str0 = "123"; 6 String str1 = "123"; 7 System.out.println(str0 == str1); 8 } 9 } 运行结果是什么?答案当然是true.对,答案的确是true,但是这是为什么呢?很多人第一反应肯定是两个“123”的Stri

java.lang(StringBuffer)

public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence { /** * Constructs a string buffer with no characters in it and an * initial capacity of 16 characters. */ public StringBuffer() { super(16);

【源码】StringBuilder和StringBuffer源码深度剖析

//------------------------------------------------------------------------ 写篇博客不容易,请尊重作者劳动成果.转载请注明出处:http://blog.csdn.net/chdjj //------------------------------------------------------------------------ 我觉得要通过源码研究一个类,应该先从整体上了解这个类,比如说这个类的继承体系,有哪些超类,继承

java中String、StringBuffer与StringBuilder

昨天遇到一道编程题关于字符串中字符内容的替换,题目如下: 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public class Solution { public String replaceSpace(StringBuffer str) { //添加代码 } } 于是想通过此题对java中字符串的定义与处理方式有所了解. 一.String java中没有内置的字符串类型,在标准jav