Java

Java7 の新機能

Java 7 がやっとリリースされたそうで。C# や Scala のような先進的な機能が無く、後方互換を気にするあまり Java は古臭い言語になってしまいつつあるが、 JVM 上で動く言語がちらほら出てきてるので今後20年くらいは Java は主流で居続けるだろうな。きっ…

[1,2,3,...,9,10,20,30,...90,100,200,300,...] みたいなリストが欲しい

1桁の数字を10個、2桁の数字を10個、3桁の数字を10個、というようなリストが欲しい。以下のコードでOK. for( int i=1; i<10000; i = i + (int)Math.pow(10, String.valueOf(i).length()-1)) { System.out.println(i); } 実行結果 1 2 3 4 5 6 7 8 9 10 20 30…

ある文字のバイト数を知りたい時は

ある文字、または文字列のバイト数を取得したい時。(文字列長では無い) String#getBytes().length を使う。例 System.out.println("あ".getBytes().length); System.out.println("あ".getBytes("UTF-8").length); System.out.println("あ".getBytes("Shift-J…

Arrays.asList はプリミティブ型の配列をリスト化してくれない

プリミティブ型の配列をリスト化してくれない。 いや、正確にはリスト化はしてくれるものの、プリミティブ型の配列全体を単一の要素として扱うため極めて直感と異なる動作をする。 //OK Integer[] intArray = {1,2,3}; List<Integer> list = Arrays.asList(intArray);</integer>…

四種類の内部クラス

Java にはクラス内にクラスを宣言する機能がある。 あるクラス内に宣言されたクラスを内部クラス(またはインナークラス)と呼ぶ。内部クラスには以下の四種類があり、それぞれ特性が異なる。 ・static メンバークラス ・非 static メンバークラス ・無名クラ…