こんにちはみんなは:Java:文字列のバイトサイズ。
文字サイズ:2
文字サイズ:1
私は考え、私は次のコード
System.out.println("Character size:"+Character.SIZE/8);
System.out.println("String size:"+"a".getBytes().length);
出力し、これを見つけて驚きました1つの文字列が1つの文字と同じ(またはそれ以上の)バイトを占める必要があるとします。特に、イム不思議で
---
私は、その大きさはフィールド(文字、文字列、論理値、ベクトル、などの性質に応じて増加しますどのようにそれでいくつかのフィールドを持つJava Beanを持っている場合..)私はすべてのJavaオブジェクトが(おそらく最小限の)フットプリントを持っていると仮定しています。そして、これらのフットプリントの中で最小のものが単一の文字であると仮定しています。ですから、その基本的な前提をテストするために、私は上記のコードから始めました。そして、印刷ステートメントの結果は直観に反するようです。
Javaが文字列と文字列をデフォルトで保存/シリアル化する方法についての洞察は、非常に有益です...ありがとうございます。
文字列の長さは、それに含まれる文字数です。文字は2バイト以上で符号化することができます。 – Oded
文字列はおそらくUTF-8でエンコードされているため、 "a"は1バイトしかかかりません。 –
[すべてのソフトウェア開発者の絶対的な最小値、絶対にUnicodeと文字セットについて知っておく必要があります(言い訳はありません)](http://www.joelonsoftware.com/articles/Unicode.html) – Oded