Java じゃば
簡単に言うとこんな感じ!
Javaは「どんなパソコンやサーバーでも同じように動く」プログラミング言語だよ! Windows でも Mac でも Linux でも、一度作ったプログラムをそのまま動かせるのが最大の特徴なんだ。企業の基幹システムからスマホアプリまで、世界中で超幅広く使われてる定番中の定番言語ってこと!
Javaとは
Java(ジャバ)は、1995年にSun Microsystems(現Oracle)が開発したオブジェクト指向プログラミング言語です。「Write Once, Run Anywhere(一度書けばどこでも動く)」というスローガンのとおり、一度作ったプログラムをOSや機種を問わずに動かせるプラットフォーム独立性が最大の特徴です。
Javaのプログラムはまずバイトコードという中間形式に変換(コンパイル)され、各OS上で動くJVM(Java Virtual Machine:Java仮想マシン)がそのバイトコードを解釈・実行します。これにより「Windowsで書いたプログラムをLinuxサーバーで動かす」ことが特別な修正なしに実現できます。
企業の基幹業務システム(ERPや銀行システムなど)、Webアプリケーションのサーバーサイド、Androidアプリ開発など、Javaが活躍する場面は非常に広く、30年近く経った今もプログラミング言語の利用ランキング上位に君臨する「現役最強クラス」の言語です。
Javaの仕組みとアーキテクチャ
Javaのプログラムが実行されるまでの流れは以下のとおりです。
| ステップ | 処理内容 | 生成されるもの |
|---|---|---|
| ① ソースコード記述 | 人間がJava言語でコードを書く | .java ファイル |
| ② コンパイル | javacコマンドでバイトコードに変換 | .class ファイル |
| ③ JVMで実行 | 各OS上のJVMがバイトコードを解釈・実行 | プログラムの動作 |
[ .java ソースコード ]
↓ javac(コンパイラ)
[ .class バイトコード ]
↓ ↓ ↓
JVM JVM JVM
(Win) (Mac) (Linux)
↓ ↓ ↓
同じ結果が得られる!
覚え方:「書くのは一回、動かすのはどこでも」
「Write Once, Run Anywhere」は略して WORA(ウォーラ) とも呼ばれます。「ワンライト・エニウェアラン=ワーラ」と覚えると忘れにくいです。「ワンコ(1匹)がどこへでも走る」イメージで!
Javaのエディション分類
用途に応じて3つのエディションがあります。
| エディション | 正式名称 | 主な用途 |
|---|---|---|
| Java SE | Standard Edition | デスクトップ・基本的なアプリ開発 |
| Java EE / Jakarta EE | Enterprise Edition | 企業向けWebシステム・サーバーサイド |
| Java ME | Micro Edition | 組み込み機器・IoT |
ビジネスシステムで「Java」と言えば、ほぼ Java SE / Jakarta EE のどちらかです。
歴史と背景
- 1991年 — Sun Microsystemsの「グリーンプロジェクト」でJavaの前身「Oak(オーク)」が誕生。家電製品向けの言語として開発がスタート
- 1995年 — 「Java」として正式発表。インターネットブームと重なり、Webブラウザ上で動く「Javaアプレット」が話題に
- 1996年 — Java 1.0リリース。開発キット(JDK)の無償配布で急速に普及
- 1999年 — Java EE(エンタープライズ版)登場。企業の大規模システム開発に本格進出
- 2007年 — Googleが Android OSの開発言語にJavaを採用。スマホ時代にも存在感を発揮
- 2010年 — OracleがSun Microsystemsを買収し、Javaの管理権がOracleへ移行
- 2017年 — Java 9からリリースサイクルが6ヶ月ごとに短縮。長期サポート版(LTS)は3年ごとに提供
- 2019年 — Java EEがEclipse財団に移管され「Jakarta EE」に名称変更
- 現在 — Java 21(2023年LTS)が最新安定版。クラウドネイティブ対応も強化され現役稼働中
他の言語・技術との比較
Javaとよく比較される言語を整理します。
| 比較項目 | Java | Python | C# | Kotlin |
|---|---|---|---|---|
| 動作環境 | JVM | Python実行環境 | .NET CLR | JVM |
| 記述量 | 多め | 少ない | 中程度 | Javaより少ない |
| 主な用途 | 企業システム・Android | AI/機械学習・スクリプト | Windowsアプリ・ゲーム | Android・サーバー |
| 学習難易度 | 中 | 低 | 中 | 中 |
| 実行速度 | 速い | 遅め | 速い | 速い |
| 企業採用実績 | 非常に多い | 多い | 多い | 増加中 |
KotlinはJavaと完全互換でより簡潔に書けるため、Androidアプリ開発では現在Kotlinが推奨されています。ただし既存のJava資産が膨大にあるため、Javaが完全に置き換わるわけではありません。
以下は、Javaのプログラムが「どのOSでも動く」仕組みをSVGで図解したものです。
関連する規格・RFC
| 規格番号 | 内容 |
|---|---|
| JSR 392 (Java SE 17) | Java Platform Standard Edition 17の仕様(Java Community Processによる標準化) |
| Jakarta EE 10 | 企業向けJavaプラットフォームの最新仕様。Eclipse財団が管理 |
関連用語
- オブジェクト指向 — データと処理をひとまとめにして扱うプログラミングの考え方
- JVM(Java仮想マシン) — Javaのバイトコードを各OS上で実行するための実行環境
- コンパイル — 人間が書いたソースコードをコンピュータが実行できる形式に変換すること
- Kotlin — JavaのJVM上で動く後継的言語。Android開発の現在の推奨言語
- Python — 記述量が少なく学習しやすい人気プログラミング言語
- フレームワーク — アプリ開発の骨格となる再利用可能なプログラムの枠組み(Spring、Strutsなど)
- API — ソフトウェア同士が機能を呼び出し合うための接続インターフェース
- クラウド — Javaアプリのデプロイ先として広く使われるインターネット経由の計算資源