ページ

2011年4月26日火曜日

JDK7 にバンドル予定の新機能 メモ

■ JDK7 にバンドル予定の新機能 メモ


【APIの改善点】
・switch 文での String
~ switch 文で String を使用できるようになる。
例:
switch (myString) {
    case "one":
        <do something>;
        break;
    case "red":
        <do something else>;
        break;
    Default:
        <do something generic>;
}


・Generics インスタンス生成のための型推論の改善
~ 2 番目の <> 構成体を以下のように推定することができる。
例:
Map<String, List<String>> anagrams = new HashMap<();


・コレクションの言語サポート
~ 配列を初期化する構文を使用して配列に含める値を指定することが出来る。
例:
List<String> numbers = ["one", "two", "three", "four", "five"];


・自動リソース管理
~ try 文の実行が完了すると、InputStream や OutputStream などのリソースが自動的に閉じられる。
例:
try (BufferedReader reader = new BufferedReader(new FileReader(file)) {
    return reader.readLine();
}


・マルチキャッチ
~ 複数の例外を同じcatchブロックでキャッチできる。
例:
try {
    ・・・
} catch (IOException | InterruptedException e) {

・java.util.Objectsクラスの提供
~ リフレクションを使い、オブジェクトのすべてのフィールドを書き出すtoString(arg)など。


・ダイアモンド演算子
~ new LinkedList<>()


・enumの大小比較
・BigDecimalで直接演算子で計算が可能
・引数チェック用のアノテーション(@NotNullみたいなもの)



【VMの改善点】

・コンプレス64ビットオブジェクトポインタ
~ 64ビットJavaでもポインタ(オブジェクトの位置を表現する変数)を短く表現することで消費メモリを減らす機能


・G1ガベージコレクタ
~ ヒープ領域は1つだけ用意され、その中を小さな領域に分割する。
そしてその領域のうちいくつかをYoung領域とし、残りをOld領域として利用する。(FullGCの発生頻度を減らす効果)
Java SE for Businessのサポート契約を購入する必要がある。


・クラスローダアーキテクチャアップグレード


■ その他(JDK8に持ち越し?)
・クロージャ
・Swingアプリケーションフレームワーク


0 件のコメント:

コメントを投稿