私はSCJP6学習ガイドに頭を悩ませていますが、彼らがここで指摘している点について混乱しています。
intをcharにキャストすることに関して、彼らは次のことは完全に合法であると言いますが、精度が失われます(私は完全に理解できます):
char d = (char)-98;
char c = (char)70000;
System.out.println("d = " + d + " c = " + c);
この結果は次のとおりです。
d = ? c = ?
ここで私が混乱しているのは、どちらの場合も、結果のchar値が単なる疑問符として出力されているということです。私は無意味な数値を期待していました。おそらく元の値とはほとんどまたはまったく関係がありませんが、それでも数値です。
結果が疑問符であるのはなぜですか?ここで疑問符だけが「精度の低下」であることがわかりませんか?
私はここSOで多くのchar関連の質問を見て、またたくさんグーグルで検索しましたが、これに対する答えを見つけることができません。
他のJVMとは異なりますか?それとも、範囲外のすべての文字キャストに対する標準的な応答ですか?