Java14は来ます!スイッチはとても単純なことだろうか?ロンボクも必要ではないですか?それにJava14を構築するためのアイデア!

Javaの14 2020年3月17日には正式版をリリースしたが、私はJavaがHuangdeの心の新バージョンをリリースしました見たときに、今、多くの企業はまだ、Javaの7またはJava 8を使用しています。しかし、このバージョンはので初見の良い、パニック、およびLTSリリースように、後でそれを使用しないでください、LTS(長期サポート版)バージョンではありません。

奥付

今、Javaリリースリズムが公開され、毎年2 GA(一般出荷、公式リリース)、半年ごとには、3月と9月のためにリリースされたバージョンをリリースしました。

OracleがJavaの8とJavaの11を含んでいるLTSバージョンのための唯一の有償サポートを提供し、Javaの11有償サポートは、LTSは、三年ごとにリリース、2026年まで継続されます、次のLTSリリースはJavaの17になります。

大型バージョンが小さなバージョンに分割され、クイック一部の開発者や技術の開発の現在の傾向を満たすために、Javaのバージョンを更新するだけでなく、配達のJavaバージョンを助長する、少なくとも、拡張子が大きな表示されません。

Javaの14個の新機能

JEPは、(ジャワ/ JDK拡張提案、JDK増強提案は)複数のJava 12のJava 13以上であり、16個の新しい機能の合計と一致し、このリリースに含まれます。

  • 305:instanceofのパターンマッチング(プレビュー)
  • 343:パッケージングツール(インキュベーター)
  • 345:NUMAメモリ割り当て最適化G1
  • 349:JFRのイベントフロー
  • 352:非アトミックバイトのバッファ・マッピング
  • 358:ヌルポインタ例外フレンドリー
  • 359:レコード(プレビュー)
  • 361:スイッチ式(標準)
  • 362:SolarisとSPARCポートを放棄
  • 363:CMS(並行マークスイープ)ガベージコレクタを削除します
  • 364:MacOSのシステム上ZGC
  • 365:WindowsシステムでZGC
  • 366:非推奨ParallelScavenge + SerialOld GC組成
  • 367:Pack200のツールやAPIを削除します
  • 368:テキストブロック(プレビュー2)
  • 370:外部メモリAPI(インキュベーター)

これは、多くのガベージコレクタを最適化しているので見ることができ、CMSのガベージコレクタが最終的に歴史の舞台を終了し、Javaの9は時代遅れとしてマークされ、Javaの14を正式に削除されました。

Javaの14を実行するように構成されたアイデア

最新バージョンのアイデアをダウンロード1

アイデアプレビュー版2020.1私たちはより良いダウンロードをいただきたいので、Javaの14サポートされており、このバージョンをインストールされ、次のように、ショットは以下のとおりです。
アイデア2020.1バージョン番号.PNG

2. [設定のアイデア

あなただけのJavaの14を実行するために、最新のアイデアをダウンロードした場合、次のエラーを促すメッセージが表示されます:

エラー:(10、35)のjava :instanceofのパターンマッチングのプレビュー機能はデフォルトでは無効になっています。
(instanceofはパターンマッチングを有効にするには、--enable-プレビューを使用してください)

まだプレビューでJavaの14の多くの機能があるので、これは、アイデアのサポートを構成する必要がそれ(ジャワ14)プレビュー機能、下記に示すとおりです。
設定.PNGアイデア14
アイデア14の構成-2.png

ヒント:あなたが新しい機能を体験するためにアイデアを使用したくない場合は、実行するためにコンパイルコードにjavacのを使用することができ、Javaの14の機能の多くは、完全なコンパイルコマンドのプレビュー版であるため、「--enable-プレビュー」パラメータを追加するには、コンパイル時の必要性」。 javacは--enable-プレビューは14 xXX.java」を--release。

新機能を体験するためのコード

我々はJavaでより重要かつ有用な新機能の14のコードの方法は、いくつかのプレゼンテーションを使用する次に、我々は実証する古いものと新しい方法のコード比較を使用します。

1.便利instanceofは

private static void instanceofTest() {
    Object obj = "Java 中文社群";
    // 旧写法
    if (obj instanceof String) {
        String s = (String) obj;
        System.out.println(s);
    }
    // 新写法
    if (obj instanceof String s) {
        System.out.println(s);
    }
}

上記のプログラムの結果は次のとおりです。

Javaの中国のコミュニティ
Javaの中国のコミュニティ

2.便利なスイッチ

// 旧写法
switch ("java") {
    case "java":
    case "jdk":
        System.out.println("This is Java.");
        break;
    default:
        System.out.println("default");
        break;
}
// 新写法
switch ("java") {
    case "java", "jdk" -> System.out.println("This is Java.");
    default -> System.out.println("default");
}

上記のプログラムの結果は次のとおりです。

これは、Javaです。
これは、Javaです。

レコードタイプのレコードを追加します。3.

// 记录类型
record People(Integer id, String name, Integer age) {
}
// 实例化
People people = new People(1, "老王", 18);
// 输出属性 name
System.out.println(people.name);

上記のプログラムの結果は次のとおりです。

ファラオ

私たちは、逆コンパイラの外観は、最終的な実装コードを記録し使用します。

➜  example git:(master) ✗ javap  Java14Example\$1People
final class com.example.Java14Example$1People extends java.lang.Record {
  public com.example.Java14Example$1People(java.lang.Integer, java.lang.String, java.lang.Integer);
  public java.lang.String toString();
  public final int hashCode();
  public final boolean equals(java.lang.Object);
  public java.lang.Integer id();
  public java.lang.String name();
  public java.lang.Integer age();
}

図から分かるように、人々最終的にはクラス継承のレコードクラスは、このようなアプローチは非常に精通まあです、、、)(等しい)(などのhashCode()メソッドと同様に、3つのカスタム属性の方法を、のtoStringを作成し、Aということではありませんカスタムビジネスクラスの右?多くのコードを必要とする前に、今のコードの2行は本当にクール取得するには、我々はまた、詳細の一部が見つかりました:レコードタイプは、彼がサブカテゴリーを持つことができないので、最終変更、および他のそのような缶継承されていませんが親、彼はRecordクラスを継承しているからです。

概要

新機能は、Javaの14以上ガベージコレクタの最適化に加えて、また、instanceofは比較や評価だけでなく、簡単なスイッチやレコードなど、いくつかの非常に便利な構文の機能を提供していますJavaの開発がますます便利にしかし、それはおそらく、次版以降に除去することがああ、それは完全にロンボクを置き換えることはできません、すべての後に、それは録音を継承しただけでなく、最終修正キーワードやその他の制限であることを意味するレコードの特性やプレビュー機能、次のバージョンを楽しみにしては、より多く持つことになります多くの驚き。

リファレンス&謝辞
公式ログ:https://jdk.java.net/14/release-notes

その他のJavaの私のマイクロチャンネル公衆番号にオリジナルの記事、してください注意を払うの「Java中国人コミュニティ。」

おすすめ

転載: blog.51cto.com/13904087/2480837
おすすめ