char を toString() してみたら
char をインスタンス変数で定義して、特に何も値を設定せずに toString() してみたら、値が文字化けしました。
char の初期値は 0?
char の初期値は、int と同じで 0 だと思っていたんですが、これ自体はあっていました。
ただ、int の 0 と char の 0 って、意味が違うんですね。
int の 0 は、整数のゼロを表します。
一方で char の 0 は、\u0000 という意味になります。
これは、UTF の "0000" に該当する文字(wikipedia によると "NUL")ということです。
これを無理やり toString() で表示しようとしたら、文字が化けたようです。
参考メモ
- ('\n0000' == 0) = true
- ('\n0000' == '0') = false