Dil*_*tel 2 java android stringbuffer
我正在使用Stringbuffer来检索缓冲区的当前容量,我发现了非常奇怪的行为.
我在Java和Android下运行代码.
根据许多资源,我发现这个公式可以增加缓冲容量
如果字符数从其当前容量增加,则容量增加(oldcapacity*2)+2.例如,如果当前容量为16,则为(16*2)+ 2 = 34.
StringBuffer sb = new StringBuffer();
System.out.println(sb.capacity());
sb.append("Hello Hello Hello Hello");
System.out.println(sb.capacity());
System.out.println(sb.length());
Run Code Online (Sandbox Code Playgroud)
Java输出 -
default capacity = 16
increases capacity = 34
length = 23
Run Code Online (Sandbox Code Playgroud)
Android输出 -
default capacity = 16
increases capacity = 26
length = 23
Run Code Online (Sandbox Code Playgroud)
我无法理解这一点,如果有人知道这一点那么请帮助我.
提前致谢.
StringBuffer增加容量的方式是内部实现细节.它的API允许您查看允许代码做出与性能相关的决策的能力.此类的文档/合同无法保证其容量如何自动增加.因此允许它们在不同平台上有所不同.两个平台上必须相同的是字符串的长度StringBuffer.
顺便说一下StringBuilder,如果你没有StringBuffer在多个线程中使用相同的对象,你应该使用它.
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |