ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Java プラットフォームの全体像
「Java」は単一の製品名ではなく、JVM (Java Virtual Machine) を中心とした技術エコシステムの総称です。用途別に複数のエディションがあり、さらに JVM 上で動く他言語 (Kotlin, Scala, Groovy など) も含めて Java プラットフォームと呼ばれます。
3 つの主要エディション
| エディション | 用途 | 含まれる主要 API |
|---|---|---|
| Java SE (Standard Edition) | 汎用・デスクトップ・サーバ基盤 | java.lang / java.util / java.io / java.net / java.time / Stream / Concurrency |
| Jakarta EE (旧 Java EE) | エンタープライズ Web/サーバ | Servlet / JSP / EJB / JPA / JAX-RS / CDI / JMS / WebSocket |
| Java ME (Micro Edition) | 組込・IoT・フィーチャーフォン | CLDC / CDC / MIDP (一部のみ) |
Java SE の構成
- JVM (Java Virtual Machine): bytecode を実行する仮想マシン
- JRE (Java Runtime Environment): JVM + 標準ライブラリ (実行用)
- JDK (Java Development Kit): JRE + コンパイラ
javac+ ツール群 (開発用) - 標準 API:
java.*パッケージ (Collections / Stream / NIO / Concurrent / Time) - JavaFX: GUI ツールキット (Java 11 以降は別配布、OpenJFX として OSS)
Java SE バージョンと LTS (Long-Term Support):
8 (2014) ← LTS。長年の事実上標準
11 (2018) ← LTS。モジュールシステム後の最初の LTS
17 (2021) ← LTS。records / sealed classes / pattern matching
21 (2023) ← LTS。Virtual Threads (軽量スレッド)
25 (2025予定) ← LTS
通常版は半年ごと (Java 12, 13, 14, ...) にリリースされるが、本番運用は LTS 推奨。
Jakarta EE
大規模 Web アプリ・基幹系で使われるサーバサイド仕様の集合。2018 年に Oracle から Eclipse Foundation に移管され、商標の都合で「Java EE」→「Jakarta EE」に改名されました。
| 仕様 | 説明 |
|---|---|
| Servlet / JSP | HTTP リクエスト処理・テンプレート |
| JPA | ORM (Hibernate / EclipseLink が実装) |
| JAX-RS | RESTful Web サービス |
| EJB | 分散トランザクション (現在は減少) |
| CDI | 依存性注入 |
| JMS | メッセージング |
| WebSocket | 双方向通信 |
| Bean Validation | 入力値検証 (@NotNull など) |
主な実装サーバ: WildFly (旧 JBoss)、Open Liberty (IBM)、Payara (Glassfish ベース)、TomEE (Tomcat + EE)。
Android プラットフォーム
Android は Java 言語の文法を使いますが、ランタイムが異なります:
- ソースコードは Java / Kotlin で書く
javacで bytecode を作った後、d8ツールで Dalvik bytecode (.dex) に変換- Android 5.0 以降は ART (Android Runtime) が AOT (Ahead-of-Time) コンパイル
- JVM ではないので、
java.awtやjavax.swingなど SE の一部は使えない - 代わりに
android.*SDK が提供される
サーバサイドフレームワーク
Jakarta EE 直接利用より、軽量フレームワークが主流です。
| フレームワーク | 特徴 | 用途 |
|---|---|---|
| Spring Boot | 圧倒的シェア。Auto Configuration。Spring エコシステム | 業務系全般 |
| Quarkus | GraalVM Native Image 前提。起動 0.01s、メモリ最小 | サーバレス・コンテナ |
| Micronaut | コンパイル時 DI、Quarkus 同様の高速起動 | マイクロサービス |
| Helidon | Oracle 製、SE/MP 2 バリアント | クラウドネイティブ |
| Vert.x | 非同期・ノンブロッキング | 高スループット I/O |
| Play Framework | Scala/Java、Akka ベース | 関数型寄りの Web |
デスクトップ / GUI
| ツールキット | 状態 | 用途 |
|---|---|---|
| JavaFX (OpenJFX) | 現役。Java 11 以降別配布 | 業務デスクトップ・教育 |
| Swing | レガシー (Java SE 同梱) | 既存システム保守 |
| AWT | 低レベル (Swing の下層) | ほぼ直接使わない |
| SWT | Eclipse プラグイン用 | Eclipse IDE / RCP |
| Compose Multiplatform | 新興。Kotlin で Desktop + Android + Web | 新規 GUI 開発 |
JVM 言語 (代替言語)
| 言語 | 特徴 | 主な用途 |
|---|---|---|
| Kotlin | JetBrains 製。Null 安全・拡張関数・コルーチン | Android / サーバサイド (Spring + Kotlin) |
| Scala | 関数型 + OOP。型システム強力 | Spark / データエンジニアリング |
| Groovy | 動的型・スクリプト寄り | Gradle スクリプト・Jenkinsfile |
| Clojure | Lisp 系・不変・REPL 開発 | 関数型サーバ・データ処理 |
| JRuby / Jython | Ruby / Python の JVM 実装 | 既存スクリプト統合 |
GraalVM と Native Image
GraalVM は Oracle が開発する高性能 JVM で、特に Native Image 機能が注目されています。Java アプリを事前コンパイルしてネイティブ実行ファイル化することで:
- 起動時間: 数秒 → 数十ミリ秒
- メモリ使用量: 数百 MB → 数十 MB
- Lambda / Cloud Run などサーバレス向き
- 制約: リフレクション・動的クラスロードは事前設定が必要
# Quarkus + GraalVM の Native Image ビルド例
./mvnw package -Pnative
# 出力された native バイナリを直接起動
./target/my-app-runner
# → 起動 0.02s、メモリ 30 MB
Java SE の主な機能カテゴリ
| カテゴリ | パッケージ |
|---|---|
| 言語基本 | java.lang (String / Object / Math / Thread) |
| コレクション | java.util (List / Map / Set / Stream) |
| I/O | java.io / java.nio (ファイル / ストリーム / Channel) |
| ネットワーク | java.net (URL / HttpClient / Socket) |
| 日時 | java.time (LocalDate / ZonedDateTime / Duration) |
| 並行処理 | java.util.concurrent (ExecutorService / CompletableFuture / Virtual Threads) |
| セキュリティ | java.security / javax.crypto |
| XML / JSON | javax.xml (JSON は外部ライブラリ Jackson 等) |
| SQL | java.sql / javax.sql (JDBC) |
FAQ
Q: Java SE と Jakarta EE、何が違う?
A: Java SE は言語+標準ライブラリそのもの。Jakarta EE は SE の上に乗るサーバサイド仕様の集合 (Servlet / JPA / JAX-RS 等)。EE 単体では動かず、必ず SE+EE 実装サーバ (WildFly 等) が必要です。
Q: Java と Kotlin、サーバサイドはどちらを学ぶべき?
A: 既存資産が多いのでまず Java SE と Spring Boot。その後 Kotlin に移ると、Spring も Kotlin で書けるため移行が滑らかです。Android 開発を視野に入れるなら Kotlin 必須。
Q: Java ME はまだ使われている?
A: スマートフォン全盛で 大幅に縮小しましたが、組込分野 (古い決済端末、フィーチャーフォン残存市場、産業機器) では現役です。新規開発はほぼ無いと考えてよいでしょう。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- UE5のレベルブループリントでキャラクターをスポーンさせる方法 2026-06-13 13:26:37
- UE5のEvent Tickノードの使い方|毎フレーム処理とDelta Seconds 2026-06-13 13:26:37
- Reactのよくあるエラーと対処まとめ|環境構築・npm関連 2026-06-13 13:26:36
- UE5でAI Move ToがBlockedで失敗する原因と対処方法|NavMesh確認 2026-06-13 13:26:36
- UE5のビューポートの使い方|視点操作・ビューモード・投影の基本 2026-06-13 13:26:36
- UE5のWorld Compositionとは|サブレベルによる大規模ワールドと非推奨化 2026-06-13 13:26:35
- C++のコンパイルと実行方法|g++の使い方とオプション 2026-06-13 13:26:35
- .protoのgo_packageオプションとは|Goコード生成時のパッケージ指定 2026-06-13 13:26:34
- C++の開発環境構築|コンパイラとIDEの選び方・Hello World 2026-06-13 13:26:34
- gRPCクイックスタート|.proto定義からサーバ・クライアント実装まで 2026-06-13 13:26:33
- C++の関数まとめ|標準入出力(printf・cout・cin)と関数の基本 2026-06-13 13:26:33
- C#・Visual Studioのよくあるエラーと対処まとめ 2026-06-13 13:26:33
- UE5でSet Input Mode UI Onlyを解除する方法|Game Onlyに戻す 2026-06-13 13:26:32
- UE5のアウトライナーとは|アクターの一覧・整理・親子付け 2026-06-13 13:26:32
- UE5エディタの自動保存の頻度を変更する方法|Auto Save設定 2026-06-13 13:26:31
コメントを削除してもよろしいでしょうか?