JAvaでのgetBytes()の問題
737 ワード
Javaのchar符号化方式はunicodeであることを知っています.次のコードを見てみましょう.
私たちのコンパイルプラットフォームでは、このファイルの符号化方式がUTF-8であることを発見しました.これは分かりました.getBytes()はファイルの符号化方式を使用しています.
JAvaファイルの実行手順は、次のとおりです.
1.ファイルの符号化方式により、このファイルをUTF-8で符号化された.javaファイルに変換する.
2、.javaファイルをバイナリファイル.classファイルに変換します.
3、JVMはクラスをマウントして実行する.
4、実行時に文字を出力する場合は、その文字をunicode符号化からプラットフォームの符号化に変換する.
したがって、通常のcharはunicode符号化であり、実はcharはJVMで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符号化である.