JAVA 9.新機能

Javaは驚くほど汎用性の高いプログラミング言語です。 現在、世界中に約650万人のJava開発者がいます。 そして、そのユーティリティ、使いやすさ、セキュリティ、プラットフォームに依存しないことのすべてに感謝します(使用する機器やオペレーティングシステムに関係なく動作します)。



Javaは1995年にSun Microsystemsによって開発され、もともとはインタラクティブなテレビおよび家電プログラミング用に作成されました。 しかし、Java 1.0のパブリックリリースにより、インターネットの使用に焦点が移り、最も一般的なプログラミング言語の1つになりました。



明らかに、1.0から多くの変更が行われ、最終的に、多くの移行を経て、2017年9月21日にJava 9がリリースされました。



その汎用性により、以前の(8番目の)バージョンの機能は、開発者にフィンテック、ヘルスケア、その他の業界を含むさまざまなビジネスセクター向けのソリューションを作成する機会を提供しました。 Java 8の主要な革新には、ラムダ式、ストリーム、およびAPIの変更があります。



同様に、Java 9には、「内部」およびAPIでのさまざまな更新が豊富にあります。 Javaの主要コンポーネントにモジュール性を導入する責任がある明白なJigsawプロジェクトに加えて、新しいバージョンにはさらに3つの重要な機能があります。



  1. HTTP 2.0クライアントの完全サポート:問題は速度であり、HTTP 2.0は、HTTP 1.1クライアントと比較して11.81%から47.7%の範囲でより良い結果を提供します。
  2. Jshell:新しいコマンドラインツール。 開発者が複数のJava行を自律的に実行したい場合、すべてを個別のメソッドまたはプロジェクトにラップすることなく実行できます。
  3. マイクロベンチマーク:個々の小さなコードのパフォーマンスを標準化された方法で測定できるようになりました。 ナノ秒JMH分析はJa​​va 9に固有です。






Javaコミュニティポータルの完全なリストを読んで、レビューのために配布キットを自由にダウンロードすることをお勧めします。



次に、Java 8に欠けていたいくつかの機能を詳しく見ていきます。



HTTP / 2クライアント



これはおそらく最も期待されている技術革新-HTTP / 2プロトコルとWebSocketの両方をサポートするHTTPクライアントです。 実際、HTTP / 2のベースとなるGoogleのSPDYプロトコルは、NettyまたはJettyのパフォーマンスの向上、ノンブロッキングモードのサポート(リクエスト/レスポンスごとに多数のスレッド)、および明示的なリクエストなしでクライアントにリソースを送信できるプッシュサーバーサポートを既に実証しています。



新しいAPIは、Java用の最初のインキュベーターモジュールとして提供されます。これは、適切に開発された場合、次のバージョン(つまりJava 10)で公式に表示されるか、削除される実験的な機能です。 Javaの珍しい概念。これは実験を奨励しますが、後方互換性に違反しません。



ジグソープロジェクト



Jigsawプロジェクト(「パズル」と翻訳)は、Javaのモジュール化を目指しています。 これは、プログラムコードが部分に分割され、これらのモジュールが実行するタスクに応じてモジュールに編成されることを意味します。 これにより、モジュールを再利用し、その構成とデバッグを簡素化できます。 これにより、ソフトウェア開発が最適化および合理化されます。 これは、Java 9とJava 8の主な違いです。



2番目の大きな利点は、Javaプラットフォームの軽量化とスケーラブル化が進んでいることです。 これにより、パフォーマンスの低いデバイスでもJavaアプリケーションを実行できます(実行に必要なリソースが少ないため)。 これは、特にモノのインターネット(IoT)のコンテキストでは大きな変化です。 Javaの一歩前進、およびこの言語で記述されたIoTアプリケーションをさらに見る機会。



Jshell



Jshellは組み込みサポートを追加し、REPL(Read-Eval-Print-Loop)に対するJavaのアプローチを普及させます。 これは、新しいクラスを作成しなくても、小さなコードをテストできるインタラクティブなツールです。 履歴とオートコンプリート機能、および記述された式の保存とロードを含む他の多くの機能が装備されています。

自分で複数のJava行を実行したい場合、別のプロジェクトやメソッドにラップする必要はありません。 セミコロンについては、忘れることができます。人気のあるIDEのREPLプラグインやJava REPL Webコンソールなど、さまざまな代替手段がありますが、いずれも公式ではありません。



統合JVMロギング



すべてのJVMコンポーネント用の単一のロギングシステムが追加されました。 ただし、Java 9の長所と短所を見ると、そのうちの1つがあります。 Java Development KitでJavaコードを記録するのと同じように、個々のJVMコンポーネントの記録呼び出しはありません



G1-デフォルトのガベージコレクター



Javaにはガベージコレクターが1つしかないというエラーが頻繁に発生しますが、実際には4つあります。以前のバージョンではParallel / Throughput Collectorがデフォルトと見なされていましたが、Java 7で導入され、ヒープをより適切にサポートするように設計されたG1に置き換えられました4GBより大きい。 GCの一時停止は少なくなりますが、発生した場合はより長く続きます。



マルチ解像度画像



このAPIを使用すると、単一のオブジェクトに異なる解像度の画像セットをカプセル化できます。 したがって、開発者は特定の解像度の画像またはその中のすべてのオプションを取得できます。



注目すべきAPIアップデート: 並行性スタックウォーキング



Java 9はCompletableFutureおよびjava.util.concurrent.Flowの更新を受け取りました。 フローは、Reactive Streams APIのJava実装です。 リアクティブストリームは、バックプレッシャーの問題-着信イベントの受信速度がアプリケーションによる処理速度よりも速い場合に発生する大量のデータの蓄積を解決し、生データバッファの出現につながります。 さらに、並行性の改善の一環として、CompletableFutureは、Java 8での実装後に特定された問題を解決する更新を受け取りました。遅延とタイムアウトのサポート、サブクラスのサポートの改善、およびいくつかの便利なメソッドが含まれます。



Stack Walking APIについても言及したいと思います。 そうです、Java 9はスタックトレースを扱う方法を変えており、スタックトレースをプレーンテキストと同一視するのではなく、公式の方法でスタックトレースを処理します。



不変のリスト、セット、マップ、およびMap.Entry API



Java 8で複数要素セットを作成するには、数行のコードが必要でした。 現在、これは1人でのみ可能です。 したがって、Java 8の最も時間のかかる欠点の1つが解消されました。 これにより、配列の操作が簡単になり、一部の機能が高速化されます。



Java 9の利点



Java 9とJava 8の違いの詳細は、開発者にとって非常に興味深いものであり、したがって、最高のソリューションを探しているビジネスにとっても重要です。 9番目のバージョンの革新により、開発の次の側面が改善されます。





終わり



ここに、新しいバージョンのリリース後に注目したすべての興味深い変更の絞り込みを示します。 確かに、第8版をまだ使用していない人がいることを考えると、今の主な問題は、企業がいつそれを実装し始めるかです。 その結果、これまでのところ、彼らはコースプログラムを (小さな化粧品を除いて)変更せず、すべてをそのままにしておき、来年、これについて考えることにしました。



All Articles