charの復習

char c1 = 'U';
char c2 = '\u0055';
// charは符号無し整数型とも考えられるので
// 2バイト内ならキャスト必要なし
char c3 = 0x55; char c4 = 85; // 55(h)は85(d)
char c5 = (char)85; // キャストしてもc4と同じモノ('U')が入る
// char cX = 65536; // これは範囲外なのでエラー。キャストが必要
int i = 'U'; // charからintに暗黙の型変換されている

System.out.println(c1); // U
System.out.println(c2); // U
System.out.println(c3); // U
System.out.println(c4); // U
System.out.println(c5); // U
System.out.println(i);	// 85

Character ctr1 = new Character('U');
Character ctr2 = new Character('U');

// ctr1とctr2は異なるオブジェクトで等しい値を持つ
System.out.println(ctr1==ctr2); // false
System.out.println(ctr1); // U
System.out.println(ctr2); // U
System.out.println(ctr1.hashCode()); // 85
System.out.println(ctr2.hashCode()); // 85
// 同じハッシュ値を返す。なぜなら、
// CharacterのhashCode()メソッドは、
// return (int)value;するだけだから。