JAvaでのgetBytes()の問題


Javaのchar符号化方式はunicodeであることを知っています.次のコードを見てみましょう.
public class Try {
    public static void main(String[] args) {
        // TODO code application logic here
       String x=" ";
       byte[] a=x.getBytes();
       System.out.println(a.length);
    } 
}
の出力結果は非常に不思議で、3で、Stringはfinal修飾のchar配列であることを知っています.charの符号化はunicodeではありませんか.どうして3バイトになったの?
私たちのコンパイルプラットフォームでは、このファイルの符号化方式がUTF-8であることを発見しました.これは分かりました.getBytes()はファイルの符号化方式を使用しています.
JAvaファイルの実行手順は、次のとおりです.
1.ファイルの符号化方式により、このファイルをUTF-8で符号化された.javaファイルに変換する.
2、.javaファイルをバイナリファイル.classファイルに変換します.
3、JVMはクラスをマウントして実行する.
4、実行時に文字を出力する場合は、その文字をunicode符号化からプラットフォームの符号化に変換する.
したがって、通常のcharはunicode符号化であり、実はcharはJVMでunicode符号化である.