Java文法

==の時のAuto-Boxing

char c = 'U'; Character chObj = new Character('U'); // Auto-Boxing System.out.println(chObj==c); // true System.out.println(c==chObj); // true // javac -source 1.4 でコンパイルするとエラー chObj==c は、CharacterのchObjをunboxing変換でchar…

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; /…

Stringのequalsと==の違い復習

クラスStringはObjectのequalsメソッドをオーバーライドしている。 クラスObjectのequalsメソッドは単に==をしているだけ。 // Objectのezualsメソッド public boolean equals(Object obj) { return (this == obj); } クラスStringや他のラッパークラスはequ…

System.in はSystem クラスの フィールド

とある会社がやってるjava入門サイトに 「System.in はSystem クラスの in メソッドです」 的なことが書いてあってビックリした。最初は書き手の人がメソッドとフィールドを打ち間違ったのかな?と思ったんだけど……。 本家ドキュメンテーションにはこうある↓…

Integer.parseIntとInteger.toString

基数をパラメータに取るIntegerのparseIntとtoStringが頭の中でごっちゃになってたので整理。 parseInt radix(基数)で表された文字列を十進法にしてintで返す public static int parseInt(String s, int radix) radixが2以上36以下の範囲外だと例外(Number…

i++と++i

//(例1 int i=0, j=0; System.out.println(i++); // 0 : 先にi(0)が出力されてから、iが1増える(++) System.out.println(++j); // 1 : 先にjが1増えて(++)から、j(1)が出力される //(例2 int k=0, n=0; System.out.println(String.valueOf(k++)); // 0 …

NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError Eclipseで書いたプログラムをターミナルで java /Users/username/Documents/workspace/MyProject/MyClassして発生。いつもなんとなくこれ↑やってしまってNoClassDefFoundErrorが出て、「あれ、ど…

finally節は必ず実行される

try { System.out.println("try"); return; // ここにリターンがあってもfinally節は実行される // catch省略可 } finally { System.out.println("finally"); } // System.out.println("end"); // これをここに入れるとコンパイルエラーに(unreachable code)…