Javaではcharは何バイトを占めますか?

coldplay.xixi
リリース: 2022-01-12 15:41:28
オリジナル
29594 人が閲覧しました

Java の char が占めるバイト数: 1. Java の内部コードの char は UTF16 でエンコードされ、1 つの char は 2 バイトを占有します; 2. Java の外部コードの char は UTF8 でエンコードされます. 1文字は[1~6]バイトを占めます。

Javaではcharは何バイトを占めますか?

#この問題について説明する前に、Unicode と UTF を区別する必要があります。

  • unicode: 統一された文字番号。文字と数字の間のマッピングのみを提供します。シンボルの数は増え続けており、100 万を超えています。詳細: [https://zh.wikipedia.org/zh-cn/Unicode]

  • UTF: Unicode 変換形式。 Unicode における数値のエンコード方法を定義します。 UTF8 と UTF16 は 2 つの実装方法です。このうち、utf8 は可変長表現であり、長さは 1 ~ 6 バイト、utf16 は可変長表現で、長さは 2 バイトまたは 4 バイトです。詳細: UTF8 [https://zh.wikipedia.org/zh-cn/UTF-8] UTF16 [https://zh.wikipedia.org/zh-cn/UTF-16]

#次に、内部エンコーディングと外部エンコーディングを区別する必要があります。

  • 内部コード: 特定の言語の実行時にメモリ内で文字と文字列をエンコードする方法。

  • 外部コード: 内部コードを除くすべてが外部コードです。

ソースコードのコンパイルにより生成されるオブジェクトコードファイル(実行ファイルまたはクラスファイル)のエンコード方式は外部コードに属することに注意してください。

最初に内部コードを見てみましょう

JVM の内部コードは UTF16 を使用します。初期の頃、UTF16 は固定長の 2 バイト エンコードを使用してエンコードされていました。2 バイトで 65536 個のシンボルを表現できます (実際にはこれよりも少ないシンボルを表現できます)。これは、当時の Unicode のすべての文字を表現するのに十分でした。ただし、Unicode の文字数が増加すると、2 バイトではすべての文字を表現できなくなり、UTF16 では 2 バイトまたは 4 バイトを使用してエンコードを完了します。この状況に対処するために、Java は前方互換性要件を考慮して、4 バイトを必要とする文字を表す char のペアを使用します。したがって、Java の char は 2 バイトを使用しますが、一部の文字はそれを表すために 2 つの文字を必要とします。

外部コード

Java のクラス ファイルは、UTF8 を使用して文字を格納します。つまり、クラス内の文字は 1 ~ 6 バイトを占めます。

Java のシリアル化中、文字も UTF8 でエンコードされ、1 ~ 6 文字が占められます。

概要:

  • Java の内部コード (実行メモリ) の文字は UTF16 を使用してエンコードされます。1 つの文字は 2 バイトを占有しますが、一部の文字は 2 バイトで表現する必要があります。文字。したがって、1 文字は 2 バイトまたは 4 バイトを占有します。 Java 中国語および外国語コードの

  • char は UTF8 を使用してエンコードされ、1 文字は 1 ~ 6 バイトを占めます。

  • UTF16 エンコードでは、英語の文字は 2 バイトを占め、ほとんどの中国語文字 (特に一般的に使用される漢字) は 2 バイトを占め、個々の中国語文字 (Unicode でエンコードされた中国語文字は後で追加されます) ) 、通常はめったに使用されない珍しい単語) は 4 バイトを占めます。

  • UTF8 エンコードでは、英語の文字は 1 バイトを占め、ほとんどの中国語の文字は 3 バイトを占め、一部の中国語の文字は 4 バイトを占めます。

  • #EOF

関連する無料学習の推奨事項:

Java 基本チュートリアル

以上がJavaではcharは何バイトを占めますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート