1. ホーム
  2. Java

JAVA全バージョンの特徴、これだけ見れば十分! JAVA 1.0 - JAVA 17] をご覧ください。

2022-02-25 06:56:12

バージョン間の機能を把握しようと思ったのですが、最新の機能説明がなくて検索できなかったので、書いてみようと思います。たいしたことは書いてませんが。

PS:絶対にウェブ上で最も包括的で完全なものです!もしそうでなければ、プライベートチャットで追加してください!ハハハ。 

 20GのJAVA学習教材を無料で共有!継続的に更新しています。

バックエンドをたどって、"JAVAラーニングリソース"と返信すると入手できます。


JDKバージョン1.0

1996-01-23 オーク(Oak)

初期バージョン、偉大なマイルストーンであるが、純粋にインタプリタとして動作し、外部のJITを使用し、パフォーマンスが悪く、動作が遅い。


JDKバージョン1.1

1997-02-19

  • JDBC (Java DataBase Connectivity)。
  • 内部クラスのサポート ;
  • RMI (Remote Method Invocation) ;
  • リフレクション;
  • Java Beanです。

JDKバージョン1.2

1998-12-08 プレイグラウンド

  • コレクションフレーム ;
  • JIT (Just In Time) コンパイラ;
  • パッケージ化されたJavaファイルにデジタル署名を付与します。
  • Swing 1.0、ドラッグアンドドロップ、Java2DクラスライブラリなどのJFC(Java Foundation Classes)。
  • Javaプラグイン。
  • JDBCにおけるローラブルリザルトセット、BLOB、CLOB、バルクアップデート、ユーザー定義型の導入。
  • Appletにサウンドサポートを追加する。

JDKバージョン1.3

2000-05-08 ケストレル (ケストレル)

<ブロッククオート
  • Java Sound APIです。
  • jarファイルのインデックスです。
  • Java の様々な面で最適化および拡張が行われています。

JDKバージョン1.4

2002-02-13 マーリン (ファルコン)

<ブロッククオート
  • XMLの処理。
  • Java印刷サービス ;
  • ロギングAPI。
  • Java Web Start。
  • JDBC 3.0 API。
  • アサーション;
  • Preferences API。
  • 連鎖的な例外処理。
  • IPV6に対応。
  • 正規表現に対応。
  • Imgae I/O APIを紹介します。

<スパン ジャバ5

2004-09-30 タイガー(老虎)

<ブロッククオート
  • パネル
  • ループを強化すると、反復的なメソッドを使用できます。
  • オートボックスとオートアンボックス。
  • タイプセーフな列挙。
  • 変数パラメータ;
  • 静的な紹介 ;
  • メタデータ(アノテーション)。
  • インストルメンテーション

<スパン ジャバ6

2006-12-11 マスタング

  • スクリプト言語への対応。
  • JDBC 4.0 API。
  • Java コンパイラ API。
  • プラガブルアノテーション。
  • Native PKI (Public Key Infrastructure)、Java GSS (Generic Security Service)、Kerberos、LDAP (Lightweight Directory Access Protocol)のサポートを追加しました。
  • ウェブサービスを継承する。

<スパン ジャバ7

2011-07-28 ドルフィン(Dolphin)

<ブロッククオート
  • switchブロックでは、分岐条件として文字列を使用することができます。
  • ジェネリックオブジェクト作成時に型推論を適用する。
  • 1つのステートメントブロック内で複数の例外をキャッチする。
  • 動的言語への対応
  • try-with-resources(1つのブロックで複数の例外をキャッチする)のサポート。
  • Java NIO.2開発キットをご紹介します。
  • 数値型はバイナリ文字列で表現でき、文字列表現にアンダースコアを付加することができる。
  • Diamond型構文(ジェネリックオブジェクト作成時に型推論を適用)。
  • NULL 値の自動処理。

<スパン ジャバ8

2014-03-18 

  • ラムダ式  - ラムダでは、関数をメソッドの引数として渡すことができます(関数は、引数としてメソッドに渡されます。

  • メソッドのリファレンス  - メソッド参照は、既存のJavaクラスやオブジェクト(インスタンス)のメソッドやコンストラクタを直接参照するための非常に便利な構文を提供します。ラムダと組み合わせて使用することで、メソッド参照は言語をよりコンパクトかつ簡潔に構成し、冗長なコードを削減することができます。

  • 既定の方法  - デフォルトメソッドとは、インターフェース内に実装を持つメソッドのことです。

  • 新ツール  - 新しいコンパイルツール、例えば Nashorn engine jjs やクラス依存性パーサ jdeps などです。

  • ストリームAPI  -新しく追加された Stream API (java.util.stream) は、Java に真の関数型プログラミングスタイルをもたらします。

  • 日付時刻API  - 日付と時刻の取り扱いを強化します。

  • オプションのクラス  - Optionalクラスは、すでにJava 8のクラスライブラリの一部であり、ヌルポインター例外を解決するために使用されます。

  • JavaScriptエンジン「Nashorn  - Java 8は新しいNashorn javascriptエンジンを提供し、JVM上で特定のjavascriptアプリケーションを実行することができるようになりました。

  • 詳細なリファレンスです。 http://www.runoob.com/java/java8-new-features.html


<スパン ジャバ9

2017-09-22

  • モジュール方式 : モジュールとはパッケージの入れ物のことで、Java9の大きな変更点の1つがモジュールシステムの導入です(Jigsawプロジェクト)。
  • REPL (JShell) : インタラクティブなプログラミング環境。
  • HTTP 2 クライアント : HTTP/2規格は、HTTPプロトコルの最新バージョンで、新しいHTTPClient APIは、WebSocketとHTTP2ストリームをサポートし、サーバープッシュ機能も備えています。
  • Javadocの改善 : Javadoc は API ドキュメント内の検索をサポートするようになりました。また、Javadoc の出力が HTML5 に準拠するようになりました。
  • マルチバージョン対応JARパッケージ : マルチバージョン互換JAR機能は、特定のバージョンのJava環境でのみ動作するライブラリアプリケーションを作成する際に、使用するクラスのバージョンを選択できるようにするものです。
  • コレクションファクトリーメソッド : List、Set、Map インターフェースの新しい静的ファクトリーメソッドは、これらのコレクションのイミュータブルなインスタンスを作成します。
  • プライベートインターフェースメソッド : インターフェイスでプライベートなprivateメソッドを使用します。privateアクセス修飾子を用いて、インターフェース内にプライベートメソッドを記述することができる。
  • プロセスAPI : OSのプロセスを制御・管理するためのAPIが改良されました。ProcessHandle とそのネストされたインターフェイス Info は、ローカルプロセスの PID を取得するためにネイティブコードを使用しなければならないというジレンマから開発者が逃れることを可能にします。
  • ストリームAPIの改良 : 改良された Stream API は、ストリーム処理を容易にし、コレクターを使用して複雑なクエリを記述するための便利なメソッドを追加します。
  • try-with-resourcesの改良 : final または final 変数に相当するリソースが既にある場合、try-with-resources 文で新しい変数を宣言する代わりに、その変数を使用することができます。
  • 非推奨アノテーション @Deprecated を改善しました。 : Deprecatedアノテーションは、Java APIの状態をマークし、マークされたAPIが削除されること、または壊れていることを示すことができます。
  • ダイヤモンド・オペレーターの改善  : 匿名クラスは、ダイヤモンド演算子を使用できます。
  • Optionalクラスの改善 Optional: java.util.Optionalは多くの新しい便利なメソッドを追加し、Optionalは直接ストリームに変換することができます。
  • マルチレゾリューション画像API : Multi-resolution Image API を定義することで、開発者は異なる解像度の画像を簡単に操作・表示することができます。
  • CompletableFuture APIの改良  CompletableFutureクラスの非同期機構により、ProcessHandle.onExitメソッドの終了時に処理を実行することができます。
  • 軽量なJSON API : 軽量なJSON APIが組み込まれている
  • Reactive Streams API : Java 9 でレスポンシブ・プログラミングをサポートするために、新しい Responsive Streams API が導入されました。
  • 詳しくはリファレンスをご覧ください。 http://www.runoob.com/java/java9-new-features.html

<スパン ジャバ10

2018-03-20

公式サイトの公開情報によると、重要な機能は以下の12項目です。

<ブロッククオート
  • JEP286 var ローカル変数の型推論を行う。
  • JEP296 これにより、Mercurial が管理する多くの JDK リポジトリが単一のリポジトリに統合され、開発・管理プロセスが簡素化されます。
  • JEP304 を、統一されたガベージコレクション・インターフェースで実現しました。
  • JEP307 G1ガベージコレクタ用の並列完全ガベージコレクションで、並列処理を実装し、最悪レイテンシを改善します。
  • JEP310 アプリケーションクラスデータ共有(AppCDS)は、プロセス間で共通のクラスメタデータを共有することで、メモリフットプリントと起動時間を削減します。
  • JEP312 ThreadLocalハンドシェイクの相互作用。グローバルJVMセーフポイントに行くことなく、スレッド上のコールバックを実行する。最適化は、すべてのスレッドまたは全くないのではなく、単一のスレッドのみを停止することができます。
  • JEP313 JDKに付属しているjavahツールを削除します。代わりにjavac -hを使うことができます。
  • JEP314 Unicode言語タグの拡張子を追加して使用します。
  • JEP317 Graal社のJavaベースコンパイラは、Javaコードをネイティブコードにプリコンパイルし、ヒープメモリの使用量をユーザー指定の予備メモリデバイスに割り当てることで、パフォーマンスを向上させることができます。
  • JEP318 OpenJDKでは、ルート証明機関の証明書のデフォルトセットを提供しています。OpenJDKが開発者にとって使いやすくなるように、現在のOracleが提供するJava SEのルート証明書をオープンソース化します。
  • JEP322 は、リリースバージョンの時間ベースの定義、すなわち上記のリリースサイクルです。バージョン番号は、 \$FEATURE.\$INTERIM.\$UPDATE.\$PATCH で、それぞれメジャーリリース、中間リリース、アップグレードパッケージ、 パッチリリースとなります。

<スパン ジャバ11

2018-09-25 

今回、翻訳された新機能は

<ブロッククオート
  • 181:ネストベース・アクセス・コントロール
  • 309:動的なクラスファイル定数
  • 315:Aarch64組込みの改善
  • 318:ノーアクションガベージコレクタ
  • 320:JavaEEとCORBAモジュールの排除
  • 321:HTTPクライアント(標準)
  • 323:ローカル変数のシンタックスλパラメータ
  • 324:Curve25519とCurve448のキープロトコル
  • 327:ユニコード10
  • 328:フライトレコーダー
  • 329:ChaCha20とPoly1305の暗号化アルゴリズム
  • 330:列のソースコード・プログラムを起動する
  • 331:低オーバーヘッドのヒープ解析
  • 332:トランスポート・レイヤー・セキュリティ(TLS) 1.3
  • 333:Action:スケーラブルで低レイテンシーのガベージコレクタ(実験的)
  • 335:NashornのJavaScriptエンジンに対抗して
  • 336:Pack200のツールやAPIに対して

<スパン ジャバ12

2019-03-19

機能的なリリースとして、JDK 12には、合計8つの新しいJEPが含まれています。

<ブロッククオート <ブロッククオート

 オリジナルのアドレスです。 http://openjdk.java.net/projects/jdk/12/

JDK 11がLTS(Long Term Support)バージョンであることは分かっているのだから、その選択はどうなのか?(どうせJDK 8がまだ主流なんだし、本当に迷ってるのかな?)

12と11のどちらを使うべきですか。 https://blog.csdn.net/csdnnews/article/details/83753246


<スパン ジャワ13

2019-09-17

新機能を追加しました。

<ブロッククオート
  • 350     ダイナミックCDSアーカイブス      は、Javaアプリケーションの実行終了時にクラスの動的アーカイブを可能にするためにappCDSを拡張します。アーカイブされたクラスには、デフォルトのベースレベルCDS(クラスデータ共有)アーカイブに存在しない、ロードされたすべてのアプリケーションクラスとライブラリが含まれます。このエミュレーションにより、AppCDSの使い勝手を向上させる。
  • 351     ZGC:未使用メモリのアンコミット    ZGCが強化されました。以前のバージョンでは、javaはGC後にシステムメモリをOSに解放しませんでした。それは、リリースのたびにjvmのメモリをリサイズすることになり、多少の消費があったからです。ソフトウェアの進化に伴い、多くの場合、メモリはより高価なリソースであることがわかったので、未使用メモリをOSに戻す必要がありました。この機能はデフォルトで有効です。この機能は-xx:-zuncommitパラメータで無効にできます。注意:最新メモリパラメータが最大メモリパラメータより大きく設定されていると、この機能は自動的に無効化されます。
  • 353     レガシーソケットAPIの再実装     このリリースでは、java.net.socket および java.net.serversocket API の基礎となる実装を置き換えるために、新しい実装が使用される予定です。古い API は新バージョンでも削除されておらず、システムプロパティ "jdk.net.useplansocketimpl"を設定することで使用することができます。ただし、デフォルトの実装は最新版です。
  • 354     スイッチ式(プレビュー)     switchを拡張し、ステートメントとしても式としても使用できるようにし、両方の形式を従来のケース...:ラベル(通し番号付き)または新しいケース...->ラベル(落とし込みなし)で使用できるようにし、switch式から値を生成するための新しいステートメントを追加しています。これらの変更により、日常のコーディングが簡素化され、スイッチでパターン・マッチを使用するための準備ができます。この機能は、jdk 13 のプレビュー言語機能です。
  • 355     テキストブロック(プレビュー)     Java 言語にテキストブロックを追加します。テキストブロックは、ほとんどのエスケープシーケンスの必要性を回避し、予測可能な方法で自動的に文字列をフォーマットし、必要なときに開発者がフォーマットを制御できるようにする複数行の文字列テキストです。これは jdk 13 のプレビュー言語機能です。

また、JDK8には2019年1月の期限があり、それを過ぎるとオラクルはパッチなどのアップデートを提供しなくなります。関係者によると、JDK9の締切日は2018年3月、JDK10の締切バージョンは2018年9月と、もっと長くなる可能性があるとのことです。(詳細はこちらへ。 http://www.oracle.com/technetwork/java/javase/eol-135779.html?ssSourceSiteId=otncn ) JDK 9、JDK 10ともに短期リリースなので、安定した長期リリースはJAVA 11 (LTS - Long Term Support) バージョンになると思われます。


<スパン ジャバ14

2020-03-17


<スパン ジャバ15

2020-09-15


ジャバ16

2021-03-16

来るぞ来るぞ、今月中に!!!発売!!!!!!!!!!!!!!!!!!!!!!!?

<ブロッククオート

ジャバ17

2021-09-14

Java 17は現在Rampdown Phase Oneにあり、すべての機能的な特徴は凍結されています。つまり、Java 17の新機能は決まっていて、新しいJEP(JDK Enhancement Proposals)は追加されないということです

あと2ヶ月、Java17を迎えよう! (内側OS:もう懲りない!!)