「Write Once, Run Anywhere(一度書けばどこでも動く)」をスローガンに誕生したJava。Android開発・大規模エンタープライズシステム・Webバックエンドで世界中で使われる言語です。この記事ではJavaの特徴・活用分野・学習方法を解説します。
Javaとは?
Javaは、1995年にSun Microsystemsが開発した汎用オブジェクト指向プログラミング言語です。「Write Once, Run Anywhere(WORA)」を理念に掲げ、Java仮想マシン(JVM)上で動作するため、OSに依存せずどこでも同じコードが動きます。現在はOracle社が管理しています。
Javaは長年にわたりTIOBEランキングの上位に君臨し、銀行・証券・保険などの金融システム・政府システム・大規模Webサービスのバックエンドで広く使われています。Androidアプリ開発の長年の標準言語でもありました(現在はKotlinが主流)。
Javaの主な特徴
Javaの活用分野
| 分野 | 具体例 | 主な技術 |
|---|---|---|
| Webバックエンド | ECサイト・業務システム・APIサーバー | Spring Boot・Spring Framework |
| Androidアプリ | スマートフォンアプリ開発 | Android SDK |
| 大規模システム | 銀行・証券・政府システム | Java EE・Jakarta EE |
| ビッグデータ | 分散処理・データパイプライン | Hadoop・Spark |
| 組み込み | ICカード・STBなど | Java ME・Jakarta EE |
Javaのコード例(オブジェクト指向)
Javaのオブジェクト指向の特徴を実際のコードで確認してみましょう。
public abstract class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public abstract String makeSound();
public void introduce() {
System.out.println(name + "の鳴き声: " + makeSound());
}
}
public class Dog extends Animal {
public Dog(String name) { super(name); }
@Override
public String makeSound() { return "ワン!"; }
}
// 使い方
Dog dog = new Dog("ポチ");
dog.introduce(); // ポチの鳴き声: ワン!
Javaのエコシステム(Spring Boot・Maven・Gradle)
Javaの本番開発では必ずといっていいほどフレームワークとビルドツールを使います。Spring BootはJavaのWebアプリ開発で圧倒的シェアを持つフレームワークです。アノテーションベースの設定で依存性注入・Webルーティング・データベース操作が簡潔に書け、マイクロサービス開発の標準となっています。ビルドツールはMaven(XML設定)またはGradle(Groovy/Kotlin DSL)が使われます。GradleはAndroid公式ビルドツールとして採用されており、ビルド速度が速いためSpring Boot開発でもGradleの採用が増えています。
Javaの将来性とKotlinとの関係
Javaは30年以上の歴史を持ちながら現役で、エンタープライズ・Androidアプリ・ビッグデータ処理(Hadoop・Spark)で広く使われています。Java 21(LTS)ではVirtual Threads(Project Loom)が正式リリースされ、高並行処理のパフォーマンスが大幅に向上しました。Android開発ではKotlinが公式推奨言語になっていますが、JavaとKotlinは完全に相互運用でき、既存のJavaコードをそのまま使いながら新機能をKotlinで書けます。大企業のエンタープライズシステムのほとんどがJavaで動いており、長期的なメンテナンス需要から求人は安定しています。
JavaのSpring Boot実践(RESTful API開発)
Spring Bootは現在のJava Webバックエンド開発のデファクトスタンダードです。@RestController・@GetMapping/@PostMappingアノテーションでAPIエンドポイントを定義し、@Serviceでビジネスロジック、@Repositoryでデータアクセス層を分離するレイヤードアーキテクチャが標準的な設計です。Spring Data JPA(Hibernate)を使えばデータベース操作をSQLなしでインターフェースだけで実装できます。Spring Securityで認証・認可を、Spring Cloudでマイクロサービス管理を実装できます。テストではJUnit 5・Mockitoを使ったユニットテストが必須スキルです。
Javaエンジニアの市場と年収
Javaエンジニアは国内で最も求人数が多いプログラミング言語のひとつです。大手SIer・銀行・証券・保険・通信・製造業など大企業のシステム開発にJavaが多く使われており、安定した需要が続きます。年収は3〜5年経験で500〜700万円、シニアで700〜1,000万円の求人が多いです。Spring Boot+クラウド(AWS/Azure/GCP)のスキルを掛け合わせることで特に高い評価を受けられます。
Javaのコレクションフレームワーク
Javaは豊富なコレクションクラスを標準ライブラリとして提供しています。ArrayList・LinkedList・HashMap・LinkedHashMap・TreeMap・HashSet・TreeSetなどが代表的です。
import java.util.*;
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
List<String> langs = new ArrayList<>(List.of("Python", "Java", "Go", "Rust"));
// Stream APIで4文字以上の言語を大文字に変換
List<String> result = langs.stream()
.filter(s -> s.length() >= 4)
.map(String::toUpperCase)
.sorted()
.collect(Collectors.toList());
System.out.println(result);
// [JAVA, PYTHON, RUST]
}
}Javaのマルチスレッドと並行処理
Javaは初期からマルチスレッドをサポートしており、Threadクラス・Runnableインターフェース・ExecutorService・CompletableFutureなどで並行処理を実装できます。Java 21で正式リリースされたVirtual Threads(Project Loom)は軽量なスレッドで、従来のPlatform Threadより100倍以上多くの同時実行が可能になりました。ReentrantLock・synchronized・AtomicIntegerなどのスレッドセーフな実装も重要な知識です。
Javaのビルドツールと依存関係管理
JavaのビルドツールはMavenとGradleが二大ツールです。MavenはXML(pom.xml)で設定しCentral Repositoryから依存関係を取得します。GradleはGroovyまたはKotlin DSLで設定し、ビルドキャッシュにより高速です。AndroidアプリのビルドはGradle必須です。Spring Initializr(start.spring.io)でプロジェクトのひな型を自動生成できます。
JVMエコシステム(Java・Kotlin・Scala・Clojure)
Javaが動くJVM(Java Virtual Machine)はJava以外の言語のランタイムとしても使われています。Kotlin(Android公式言語)・Scala(Sparkでの大規模データ処理)・Clojure(関数型言語)・Groovy(Gradleの設定言語)はすべてJVM上で動きます。これらはJavaのライブラリを直接使えるため、既存のJavaエコシステムを活用しながら新しい言語機能を使えます。特にScalaはApache Spark(大規模データ処理フレームワーク)の主要言語で、データエンジニアリング分野でのJVM活用に欠かせません。GraalVMはJVM上の多言語ランタイムで、JavaプログラムをネイティブバイナリにコンパイルするNative Image機能が注目されています。
Javaの関数型プログラミング(Stream API・ラムダ)
Java 8以降に追加されたStream API・ラムダ式・Optional・Function/Predicate/Consumer等の関数型インターフェースにより、Javaで関数型スタイルのコードが書けるようになりました。Collection.stream()でストリームを作り、filter()・map()・collect()・reduce()でデータ処理を書く方法はモダンJavaの標準スタイルです。Optional
よくある質問
JavaとJavaScriptは同じもの?
全く別の言語です。JavaScriptはJavaの人気に便乗して命名されましたが、設計思想・文法・用途はまったく異なります。Javaはサーバーサイド・Androidアプリが主な用途で、JavaScriptはWebブラウザ上の動的処理とNode.jsによるサーバーサイド開発が主な用途です。「JavaとJavaScriptは、インドとインドネシアくらい違う」とよく言われます。
Javaは無料で使える?
OracleのJDKは商用利用に有料ライセンスが必要な場合があります。ただし「OpenJDK」は完全無料のオープンソース版で、商用利用も可能です。Adoptium(旧AdoptOpenJDK)やAmazon Corretto・Azul Zuluなど、OpenJDKのディストリビューションが多数あり、これらは無料で使えます。


コメント