文字列 "a"とChar 'a'のサイズに違いはありますか? 1文字または数字を保存する必要がある場合は、Charを使用する必要がありますか?文字列 "a"とChar 'a'の間にSIZEに違いはありますか?
1
A
答えて
3
注3例
文字列「」
文字「」
文字これらの、文字の「」
は「」(スペースの最小量を取り上げる実際にあります2バイト)、Char 'a'とString "a"は両方ともオブジェクトであるため、Objectに関連付けられたメモリオーバーヘッドのため、どちらもほぼ同じサイズになります
+1
@マイケル良い点。一定 – ControlAltDel
0
一文字のString
と一文字のchar
間にサイズの差がある(String
のバッキングchar
配列を参照)がありません。現在、UTF-16エンコーディングごとに2バイト必要ですが、7月にJava 9がリリースされるとUTF-16以外の文字は1バイトしか必要としません。
String
は明らかにプリミティブより多くのメモリを使いますが、早すぎて最適化しているようです。
0
ここでは漠然としたことが起こっていきましょう。私はかつて一度String[]
を使用して、char[]
を使用して、それをプロファイリングし、一度Character[]
を使用して
public class NewClass {
private static final int SIZE = 100000000;
public static void main(String... args)
{
char[] a = new char[SIZE];
for (int i = 0; i < SIZE; ++i)
{
a[i] = 'a';
}
}
}
:私は億の文字または文字列の配列を作成し、次のプログラムを作成しました。
使用ヒープ領域の量:
char[] : 267 million bytes
String[] : 442 million bytes
Character[] : 437 million bytes
だから、char
(私のJVM上の)Character
の大きさに匹敵する1つの文字String
、の大きさの約60%です。
関連する問題
- 1. A aとの間に違いはありますか? A a = A()?
- 2. int&aとint&aに違いはありますか?
- 3. 、新しいA(の間に違いがある)新しいA
- 4. auto a = A(3)とA a(3)の違いは何ですか?
- 5. MATLAB char配列、Aで始まる文字列
- 6. `\ A`と`^`(キャレット)との間に正規表現が違いますか?
- 7. Aとの違いは何ですか? A a();
- 8. 文字列とChar配列の違いは何ですか?
- 9. regex [A-z]と[a-zA-Z]の違い
- 10. 「numpy.add(a、b)」と「a + b」の違いは何ですか?
- 11. 時間がa#は配列にあります
- 12. 文字列= A 5600 2 A 24B9 3 A 4800v 3 A 31 6
- 13. A文字列はチャレンジ
- 14. なぜ文字列のchar *の代わりにshort *ですか? char *とunsigned char *の違い?
- 15. PHPの$ a = 0と$ a = '0'の違い
- 16. charポインタ配列にchar 'a'を設定するには?
- 17. dlopenの後に間違った文字列ライブラリがありますか?
- 18. vbNullStringと ""の間に違いはありますか?
- 19. Body.Writeと文字列の返りに違いはありますか?
- 20. ポインタとa = 1と* a = 1の違い
- 21. git commit -aは-a -mとどのように違いますか?
- 22. a、&a、* aの違いは何ですか?
- 23. 文字列にa-zとA-Z文字のみが含まれていることを確認するにはどうすればよいですか?
- 24. javascriptのa + 1とa-1 +2の違いは何ですか
- 25. bashの$ [a-b]と$((a-b))の違い
- 26. 空のURIクエリ文字列パラメータ: "a =&b ="と "a&b"
- 27. 文字列 "a±bi"から数字C
- 28. a + bとchar型の値
- 29. 「long int a = 2」と「int a = 2L」の違いは何ですか?
- 30. 「Float a = 3f」と「Float a = 3.0」の違いは何ですか?
これらは完全に異なっています。偶然同じ値を印刷するオブジェクト... –
いつ私はそれらを使用すべきですか、それらの主な違いは何ですか? – mangaluli
プリミティブ 'char'(またはオブジェクトが必要な場合は' Char')は、その値が1文字のみであることを保証します。 –