The HIRO Says

If you smell what The HIRO is cooking!!!

char を toString() してみたら

char をインスタンス変数で定義して、特に何も値を設定せずに toString() してみたら、値が文字化けしました。


char の初期値は 0?

char の初期値は、int と同じで 0 だと思っていたんですが、これ自体はあっていました。
ただ、int の 0 と char の 0 って、意味が違うんですね。


int の 0 は、整数のゼロを表します。
一方で char の 0 は、\u0000 という意味になります。
これは、UTF の "0000" に該当する文字(wikipedia によると "NUL")ということです。


これを無理やり toString() で表示しようとしたら、文字が化けたようです。


参考メモ

  1. ('\n0000' == 0) = true
  2. ('\n0000' == '0') = false