2.8 KiB
2.8 KiB
Javaとは
Javaは「Write once, run anywhere(1度書けばどこでも動く)」を理念として 1995年にSun Microsystems(現Oracle)から登場しました。 C/C++の強力さと安全性・移植性を両立させることを狙った汎用オブジェクト指向言語です。
- 開発元: Oracle(元Sun)
- ランタイム: JVM(Java Virtual Machine)
- GUI: Swing / JavaFX
- Web: Spring Boot / Jakarta EE
実行モデル
.javaソースを javacでコンパイル →.class バイトコード生成 .class を JVM が実行(JITコンパイルでマシンコード化)
[ソースコード] → javac → [バイトコード] → JVM → [実行]
これにより、Windows / macOS / Linux どこでも同じ .class を動かせます。
基本構文
public class Main {
public static void main(String[] args) {
System.out.println("Hello Java!");
}
}
Javaバージョン進化の要点
2025年時点での主流は Java 17 または 21。
| バージョン | 主な特徴 |
|---|---|
| Java 8 | Stream API, Lambda, Date/Time |
| Java 11 | LTS, 新HTTP Client |
| Java 17 | LTS, sealed class, record |
| Java 21 | LTS, virtual thread(軽量スレッド) |
主要フレームワーク(現代開発)
| 分野 | フレームワーク | 備考 |
|---|---|---|
| Webアプリ | Spring Boot | ほぼデファクト。DI, REST, DB統合 |
| DB ORM | Hibernate / JPA | Springと併用多い |
| テスト | JUnit5 | C#のxUnit/nUnitに近い |
| ビルド | Maven / Gradle | 依存管理・パッケージ構築 |
| クラウド | Micronaut / Quarkus | 軽量Javaランタイム対応 |
JDKの全体図
@startuml
title JDK / JRE / JVM の入れ子構造
skinparam shadowing false
skinparam defaultFontName Noto Sans
skinparam packageStyle rectangle
skinparam rectangleStyle rounded
rectangle "JDK(Java Development Kit)\n← 開発者用" as JDK {
rectangle "JRE(Java Runtime Environment)\n← 実行環境" as JRE {
rectangle "JVM(Java Virtual Machine)\n← バーチャルマシン" as JVM
}
}
@enduml
実際に動かしてみる
Linux
mkdir -p ~/java-play && cd ~/java-play
docker run --rm -it -v "$PWD":/workspace -w /workspace eclipse-temurin:21-jdk bash
Windows
mkdir java-play; cd java-play
docker run --rm -it -v "${PWD}:/workspace" -w /workspace eclipse-temurin:21-jdk bas