バッファの現在の容量を取得するためにStringbufferで作業していましたが、非常に奇妙な動作が見つかりました。JavaとAndroidの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());
のJava output--
default capacity = 16
increases capacity = 34
length = 23
アンドロイドoutput--
default capacity = 16
increases capacity = 26
length = 23
誰もがこのことについて知っていれば、私はその後、私を助けてください、これを理解することはできません。
ありがとうございました。
これについて「非常に奇妙な」とは何ですか?彼らは異なるデフォルト値を使用します... –
**彼らは異なるデフォルト値**を使用しますか? JavaとAndroidの両方でデフォルト値は異なります..? –