Java : 公式ドキュメントのリンク集 (Java SE 22)
Java公式のドキュメント、API仕様、ユーザーガイドなどのリンク集です。
できるだけ日本語のものを集めていく予定です。
注意
- ここでいう公式とはOracleのサイトで公開されているものとしています。
- JDKには、OpenJDKやOracle JDKなどいくつか種類があります。
基本的にはOpenJDKとして読んでも問題ないドキュメントなのですが、中には明確にOracle JDKを対象としているものもあります。(具体的にはJDKのダウンロードやインストール・ガイドはOracle JDKが対象となっています)
そのあたりを留意しつつドキュメントはご参照ください。
Java SE ドキュメント
各バージョンのドキュメントへのリンクがあります。
また、オフライン用のドキュメントもあります。
特にJava API仕様は何度も参照すると思うので、オフライン版をダウロードしてしまうのがおすすめです。
Java言語仕様
if文やfor文、Classや配列、intの範囲は-2147483648~2147483647といったJavaのもっとも基本となる言語仕様です。
残念ながら公式の日本語版はなさそう?
変更点(Java SE 22)
変更点(Java SE 21)
変更点(Java SE 17)
変更点(Java SE 16)
変更点(Java SE 15)
- テキスト・ブロック
- Programmer's Guide to Text Blocks(英語版)
(残念ながら英語版しかなさそう?)
- Programmer's Guide to Text Blocks(英語版)
変更点(Java SE 14)
変更点(Java SE 11)
JDK ドキュメント
JDKの各種ドキュメントのリンクがあります。
ただし、いくつかのリンク先は英語版となっています。
Java SE & JDK API仕様
Stringクラスや、System.out.printlnなど、APIの仕様です。
開発中に一番お世話になるのかなと思います。
Collections Framework
ListやSet、MapといったCollections Frameworkの目次です。
システム・プロパティ一覧
file.encoding や user.dir といったシステムプロパティの一覧です。
それぞれのプロパティの詳細は、ページ右側の参照のリンク先に説明があります。
Javaコア・ライブラリ
シリアライズ・フィルタリング
デシリアライズは使いかたによっては脆弱性があります。
対処方法が紹介されているので、もしデシリアライズを使っている場合は熟読することをおすすめします。
非推奨の拡張
@Deprecatedの使いかたです。
XMLカタログAPI
Java Collections Framework
Java Collections Framework(Java SE 22)
- List.of, Set.of, Map.of といった、変更不可能なリスト、セット、マップを作れる便利な API
- 順序付きコレクション、セット、マップ
などの解説があります。
プロセスAPI
Javaから外部プログラムファイル(例えばWindowsのメモ帳など)を実行するためのドキュメント。
プロセスに関連するProcessBuilderやProcessクラスなどが紹介されています。
Preferences API
Javaロギング
Java標準のAPIでもログ出力は可能です。
基本的な機能はそろっているので、これで十分なことも多いです。
Java NIO
Javaネットワーク
ネットワーク関連のシステムプロパティの解説があります。
擬似乱数ジェネレータ
従来の java.util.Random クラスは、乱数の周期が 248 と短めです。
もし、もっと周期の長い乱数が必要であれば、上記の新しい擬似乱数ジェネレータを使うことも検討してみましょう。
外部関数およびメモリーAPI
Foreign Function and Memory (FFM) API です。
従来の JNI に替わる API ですね。
JNI の 脆弱性や危険性を伴わずにネイティブコードを呼び出すことができます。
並行処理
Java 21 から追加された仮想スレッドの解説があります。
JDKツール仕様
java や javac、jlink などのツールのページです。
JavaDoc
JavaDocガイドですが、リンク先が英語のページになっているところが多いです。
必要に応じて、下記の日本語ページもご参照ください。
javadocツールの使い方です。
標準ドックレット(JDK 22)のドキュメンテーション・コメント仕様
こちらは Javadoc のコメントの書き方の仕様です。
JShellユーザーズ・ガイド
JShellを使うと、まるでスクリプト言語のように、対話的にJavaのコードを実行できます。(コンパイルも不要)
Read-Eval-Print Loop (REPL) ですね。
ちょっとしたことを確認したい場合に便利かも。
パッケージ・ツール・ユーザー・ガイド
パッケージ・ツール・ユーザー・ガイド(Java SE 22)
いわゆるインストーラを作るツールのドキュメントです。
データベース(JDBC)
だいぶ古い情報なのでご注意ください。
とはいえ、貴重な JDBC API の日本語資料です。
Oracle Database に特化したガイドです。
JDBC の解説としても参考になるかと思います。
こちらも、少し古い情報かもしれないのでご注意ください。
XML
XMLデジタル署名APIの概要とチュートリアル (Java SE 22)
Java API for XML Processing (JAXP)セキュリティ・ガイド (Java SE 22)
WebLogicのドキュメントですが、JavaのXMLについて参考になるものがいくつかあります。
※少し古いドキュメントかもしれませんのでご注意ください。
国際化ガイド
1つのアプリで日本語と英語など、多言語に対応する場合は参考になります。
Javaオブジェクト直列化仕様
シリアライズとデシリアライズについてのドキュメントです。
下記のコア・ライブラリのドキュメントも読むことをおすすめします。
コアライブラリ:シリアライズ・フィルタリング(Java SE 22)
デシリアライズの脆弱性の対処方法が紹介されています。
JARファイルの仕様
JARファイルは、コンパイルされた複数のclassファイルやリソースファイルを1つのファイルにまとめたものです。
META-INFディレクトリの説明もあります。
Java Native Interface仕様
Java Native Interface仕様の目次(Java SE 22)
Javaだとパフォーマンスが足りないところがあるので、C++でネイティブなコードを実行したい!
そんなときに必要となるのが JNI です。
Java 22 では、JNI に替わる Foreign Function and Memory (FFM) API が追加されました。
Java Remote Method Invocation (Java RMI)
ガベージ・コレクション・チューニング・ガイド
HotSpot Virtual Machineガベージ・コレクション・チューニング・ガイド(Java SE 22)
Javaではいくつかのガベージ・コレクタ(GC)が用意されています。
(シリアル・コレクタ、パラレル・コレクタ、G1、ZGC)
もし必要であれば、任意のGCを選択することができます。
Javaアクセシビリティ
トラブルシューティング(デバッグ)
メモリリークやパフォーマンス問題が発生したときに、どうやって解決していくのか?を解説しています。
問題解決のためのツール類(フライト・レコーダなど)も紹介されています。
Java Flight Recorder
トラブルシューティングの診断ツールの1つとして紹介されています。
Flight Recorder APIプログラマーズ・ガイド(Java SE 22)
オラクル・コンサルが語る!Java Flight Recorder活用のワザ
少し古いドキュメントですが、日本語で参考になるかと。
Java Debug Wire Protocol
Java Debug Wire Protocol(Java SE 22)
JVMTM Tool Interface
JVMTM Tool Interface(Java SE 22)
Java仮想マシン
セキュリティ開発者ガイド
Java SEプラットフォームのセキュリティ・アーキテクチャ
Java SEプラットフォームのセキュリティ・アーキテクチャ (Java SE 22)
アクセス権やセキュリティ・ポリシーなど、Javaの主要なセキュリティ機能について解説しています。
Java API for XML Processing (JAXP)セキュリティ・ガイド
Java API for XML Processing (JAXP)セキュリティ・ガイド (Java SE 22)
XML処理中の潜在的な攻撃である
- XML外部エンティティ(XXE)インジェクション攻撃
- 指数関数的エンティティ展開攻撃
について解説しています。
また、それらの攻撃を回避するためのXMLConstants.FEATURE_SECURE_PROCESSINGやプロパティについても詳しく説明されています。
外部からの信頼されていないXMLを読み込む場合は、上記のページを熟読することをおすすめします。
Java暗号化アーキテクチャ
Java暗号化アーキテクチャ(JCA)リファレンス・ガイド(Java SE 22)
暗号化やハッシュ化を扱うときは上記のページを熟読しましょう。
暗号化のコーディングは、一見うまく動いているように見えても、セキュリティ的に実は弱かったということがありえるので注意です。
Javaセキュリティ標準アルゴリズム名
Javaセキュリティ標準アルゴリズム名(Java SE 22)
アルゴリズムを選択するさいは慎重に。
すでに安全ではないとされているアルゴリズムもあります。(DESなど)
Java チュートリアル
ファイルI/O(NIO.2を含む)
File に代わる Path や Files のことが解説されています。
ただし少し情報が古いかもしれないのでご注意ください。