TL

Language Profile

Java

James Gosling(Sun Microsystems) / 1995年登場

“Write Once, Run Anywhere” の JVM 言語成熟・安定し、エンタープライズの基幹システムや(従来の)Android で根強い

TL;DR要点だけ先に
  • 1.一度書けばどこでも動く JVM 言語。
  • 2.成熟・安定し大規模・長期保守に強い。
  • 3.堅い基幹システムを長く運用するなら Java。

Specifications

基本情報

Introducing

Java のロゴ
Java“Write Once, Run Anywhere” の JVM 言語。成熟・安定し、エンタープライズの基幹システムや(従来の)Android で根強い。
型付け
静的強い型付け
実行方式
JVMバイトコード + JIT)
パラダイム
オブジェクト指向
登場
1995年James Gosling(Sun Microsystems)
この言語の強み
成熟安定巨大なエコシステムJVM で移植性と高い実行性能
活躍する領域
エンタープライズ基幹システムAndroid(従来) / 大規模バックエンド

Decision Guide

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

Why It Fits

選ぶ理由

  1. 成熟・安定・巨大なエコシステム
  2. JVM で移植性と高い実行性能
  3. 大規模・長期保守に強い

Trade-offs

考慮すべき点

  1. 構文が冗長(ボイラープレート)
  2. 起動が重め
  3. 言語進化が保守的

Best Fit

こんな用途に向く

エンタープライズ・基幹システムAndroid(従来)大規模バックエンド

Deep Dive

もっと詳しく

どんな言語か

Java は 1995 年に Sun Microsystems が公開した言語で、現在は Oracle が中心となって開発しています。掲げたスローガンは "Write Once, Run Anywhere"。ソースコードをバイトコードにコンパイルし、それを JVM(Java 仮想マシン)が各 OS 上で実行するため、環境を選ばず同じプログラムが動きます。

この「JVM の上で動く」という設計が Java の核心です。OS ごとの違いを JVM が吸収し、長期間にわたる後方互換性も重視されてきました。結果として、何年も前のコードが今でも動き続けるという安定性が、企業システムで強く支持されています。

なぜ選ばれ続けるのか

  • 30 年近い実績による成熟と安定。
  • ライブラリ・フレームワーク・ツールの巨大なエコシステム。
  • 大規模開発に向く静的型付けと、豊富な実行時情報。

得意なこと・不得意なこと

サーバーサイドの基幹システムのように、長く安定して動かす大規模開発が得意分野です。従来の Android アプリ開発でも長く主役でした。一方で記述は冗長になりがちで、いわゆるボイラープレートが多くなります。JVM の起動にも時間がかかるため、短時間で立ち上げて終わる用途には不向きです。

つまずきやすいところ

// クラスとメソッドの宣言が必須で、記述量が多くなりがち
public class Hello {
    public static void main(String[] args) {
        // 文字列の連結ひとつにも型が絡む
        System.out.println("Hello, World");
    }
}
  • null の扱い。参照が空のまま操作すると実行時に例外が起きる。
  • ボイラープレートの多さ。近年は記法の簡素化も進んでいる。

Language Decision

Javaを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

エンタープライズ・基幹システム

比較で見る軸

型付け: 静的・強い型付け / 実行方式: JVM(バイトコード + JIT) / パラダイム: オブジェクト指向

導入後に効く点

JVM で移植性と高い実行性能

先に潰すリスク

構文が冗長(ボイラープレート)

数字・仕様の読み方
型付け
静的・強い型付け
実行方式
JVM(バイトコード + JIT)
パラダイム
オブジェクト指向
登場
1995年
James Gosling(Sun Microsystems)

判断チェックリスト

  • 自社の用途が「エンタープライズ・基幹システム / Android(従来)」に近いか確認する。
  • 強みである「成熟・安定・巨大なエコシステム」が本当に評価軸になるか確認する。
  • 注意点の「構文が冗長(ボイラープレート)」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

エンタープライズ・基幹システムAndroid(従来)大規模バックエンド

First Step

Hello, World!

class Main {
  public static void main(String[] a) {
    System.out.println("Hello, World!");
  }
}
公式ドキュメント