JDK メーカー オープンソース JDK OpenJDK JDK インストール Java インストール JDK バージョンの違い Java バージョン間の違い Java8 から Java17 への変更点 jdk8 から jdk17 への変更点
1.JDKメーカー
- Oracle JDK公式
- OpenJDK オープンソース
- Amazon Corretto JDK オープンソース
- OpenJDK オープンソースを採用
- Azul Zulu: Azul システム無料
- Red Hat OpenJDK
- IBM JDK
- SAP マシン JDK オープンソース
2. JDKのインストール(例はJDK 8)
公式インストールドキュメント
https://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_jdk_install.html#CHDEBCCJ
2.1. JDK8 インストールパッケージをダウンロードする
ダウンロードアドレス、Oracle公式Webサイト JDKにはログインが必要です
コンピューターのシステムに応じてダウンロードを選択してください
アカウントをお持ちでない場合は、ダウンロードした JDK8 インストール パッケージ ( 包含中文文档
) 123 ネットワークディスクを使用できます。ネットワーク ディスクをダウンロードするためにログインする必要はありません。
jdk インストーラーをダブルクリックしてインストールし、
インストールする 3 つのパッケージをすべて選択します。
次のステップをクリックし続けてください。
2.2. 環境変数の設定
2.2.1. JAVA_HOME 環境変数の設定
環境変数設定を開く > 新しい環境変数 JAV_HOME を作成
変数名:JAVA_HOME
変数値:jdk安装目录; 变量值是自己的jdk安装目录:例如:D:\JDK\jdk1.8.0_161
2.2.2. CLASSPATH 環境変数の設定
環境変数設定を開く > 新しい環境変数 CLASSPATH を作成する
変数名:CLASSPATH
変数値:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
2.2.3. Path 環境変数の設定
環境変数設定を開き、Path
この環境変数を見つけて編集します
新しい環境変数値を作成します。
変数値:%JAVA_HOME%\bin
ここで特に注意してください。win10 環境変数値は、Win11 のように 1 行ずつではなく、行全体です。win10 で追加された変数値には、Path
末尾%JAVA_HOME%\bin;
に余分な;
セミコロンが付いています。
最後にインストールが成功したかどうかをテストします
CMD を開いて実行し、java -version
バージョン番号が表示されればインストールは成功です。
3. Java8からJava17への変更点
JDK 8:
主なアップグレード内容:
- ラムダ式: 関数型プログラミングをサポートします。
- 関数型インターフェイス: Function、Predicate、Consumer およびその他のインターフェイスの紹介。
- ストリーム: コレクション データを処理するための機能的なストリーミング操作。
- 新しい日付と時刻 API: java.time パッケージは、日付と時刻の処理を改善するために導入されました。
- デフォルトのメソッド: インターフェイスでデフォルトの実装を定義できます。
- 新しいガベージ コレクター: G1 コレクターなど。
- Nashorn JavaScript エンジン: Java で JavaScript コードを実行するために使用されます。
削除されたコンテンツ:
PermGen および関連するガベージ コレクター: Metaspace に置き換えられました。
JDK9:
主なアップグレード内容:
- モジュラー システム (ジグソー プロジェクト): モジュール性の概念が導入され、モジュール システムが追加されます。
- インターフェイスのプライベート メソッド: インターフェイスでプライベート メソッドを定義できるようにします。
- Javadoc の改善: Javadoc ツールが改善され、ドキュメント生成エクスペリエンスが向上しました。
- 新しいガベージ コレクター: G1 コレクターなど。
JDK 10:
主なアップグレード内容:
- ローカル変数の型推論: 型推論のローカル変数の宣言で var キーワードを使用できるようにします。
- 並列フル ガベージ コレクター: 並列 GC のパフォーマンスが向上しました。
- アプリケーション クラス データ共有: アプリケーションの起動速度が向上します。
JDK 11:
主なアップグレード内容:
- HTTP クライアント標準 API: 標準 HTTP クライアント API が導入されました。
- ローカル変数構文の強化: 型推論のラムダ式で var キーワードを使用できるようになります。
- ネストされたアクセス制御: いくつかの新しいアクセス制御修飾子が追加されました。
- ZGC ガベージ コレクター: 低遅延ガベージ コレクターを導入します。
JDK 12:
主なアップグレード内容:
- Switch式:Switch文の記述方法を強化しました。
- 新しいガベージ コレクター (Shenandoah コレクター): 低遅延ガベージ コレクターが導入されました。
JDK 13:
主なアップグレード内容:
- テキスト ブロック: 複数行の文字列を記述する方法を簡素化します。
- Switch 式の改善: Switch 式の機能がさらに強化されました。
- ダイナミック CDS (クラス データ共有): アプリケーションの起動速度が向上します。
JDK 14:
主なアップグレード内容:
- JEP343 (ガベージ コレクター インターフェイス): ガベージ コレクターのインターフェイスを定義します。
- JEP345 (Prophet): 過去のデータに基づいて将来のデータを予測するために使用されます。
- JEP359 (レコード タイプ): 不変データ クラスを迅速に定義するための新しいデータ タイプを導入します。
JDK 15:
主なアップグレード内容:
- 隠しクラス: 動的言語のパフォーマンスを向上させるために使用されます。
- シールされたクラス: クラスの継承を制限します。
- GC の Epsilon コレクター: no-op ガベージ コレクター。
JDK 16:
主なアップグレード内容:
- レコード タイプ (レコード): データ クラスの定義が簡素化されました。
- パターンマッチング: Switch式のパターンマッチング機能を強化しました。
- ガベージ コレクター (ZGC、Shenandoah): ガベージ コレクターのパフォーマンスと効率が向上しました。
JDK 17:
主なアップグレード内容:
- シールド クラス: シールド クラスの柔軟性が強化されました。
- パターン マッチング: パターン マッチング機能がさらに改善されました。
- ガベージ コレクター (ZGC、Shenandoah): ガベージ コレクターのパフォーマンスと効率がさらに向上しました。