メインコンテンツまでスキップ

Javaの基礎と現代Java入門~オブジェクト指向からJava 21まで~

福原
ディアシステム(株)開発二部第2課

こんにちは。開発二部第二課の福原です。

「Javaって昔からある言語でしょ?」

そんなイメージを持っている方も多いかもしれません。しかしJavaは約30年にわたって進化を続け、現在でも多くの企業システムやWebサービスで利用されている人気のプログラミング言語です。

今回は社内勉強会の内容をもとに、

✅ Javaとは何か
✅ オブジェクト指向の基本
✅ 現代Javaの便利な機能

を分かりやすく紹介します。

🚀 Javaってどんな言語?

Javaは1995年に登場したプログラミング言語です。現在はOracle社によって開発・管理されています。

主な特徴

  • 🎯 オブジェクト指向
  • 🌎 マルチプラットフォーム対応
  • 🔧 高い保守性
  • 📚 豊富なライブラリ
  • 🏢 長期運用に強い

業務システムや金融システムなど、「安定性が求められる現場」で特に多く採用されています。

Stack Overflow 2025でJavaの利用率は29.4%(7位)
https://survey.stackoverflow.co/2025/technology/

GitHubのOctoverse 2025ではJavaの前年同期比成長率は20.73%(4位)
https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/#the-top-programming-languages-of-2025-typescript-jumps-to-1-while-python-takes-2

💡 なぜJavaは今も選ばれるのか?

新しい言語が次々と登場する中で、Javaはなぜ使われ続けているのでしょうか?

✅ 安定性が高い

Javaは後方互換性を重視しています。
そのため、「10年以上前に作られたシステムが今でも動いている」 というケースも珍しくありません。

例えば、Java 8 、Java 11 で開発したシステムが
適切な検証を行えば新しいJava環境でも動作するケースが多くあります。

✅ 学習しやすい

Javaは利用者が多いため、

  • 📖 書籍
  • 🎥 学習サイト
  • 📝 技術ブログ
  • 💬 コミュニティ

などの情報が豊富です。

javaは30年近い歴史があり、学習環境が非常に充実しているため
初心者が困ったときに調べやすく、解決策を見つけやすいです。

また企業システム開発で広く利用されているため、多くのエンジニアが経験を持っています。
(世界のJava開発者数はおよそ1,000万人前後〜2,000万人規模)
そのため最大級のコミュニティを持つ言語の一つになります。
https://www.jetbrains.com/ja-jp/lp/devecosystem-data-playground/

✅ エコシステムが充実

Javaには長い歴史の中で育まれた強力なツールがあります。

ツール用途
Spring BootWebアプリ開発・REST API開発
MyBatisデータベースアクセス
JUnitテスト自動化
Mavenライブラリ管理
Gradleビルド自動化

これらの存在がJava開発を支えています。

🏗️ オブジェクト指向とは?

Javaを学ぶうえで欠かせない考え方がオブジェクト指向です。

簡単に言うと、現実世界のモノをプログラム上で表現する考え方 です。

例えば「車」を考えると以下のような形になります。

┌───────────────┐
│ 車 │
├───────────────┤
│ 🚗 色:赤 │
│ 🚗 速度:60km │
├───────────────┤
│ ▶️ 走る() │
│ ⛔ 止まる() │
└───────────────┘

現実世界の「モノ」を、

  • 属性(データ)
  • 振る舞い(処理)

として表現する考え方がオブジェクト指向です。

サンプルコード

class Car {

String color; // 属性:色

  // 処理:走る
void run() {
System.out.println("走る");
}
}

利用するときは、

Car car = new Car();
car.run();

のようにオブジェクトを生成します。

🎓 オブジェクト指向の3大要素

Javaでは次の3つが特に重要です。

🔒 カプセル化

データを保護する仕組みです。

ユーザー

┌────────────────────┐
│ User │
├────────────────────┤
│ private age │
└────────────────────┘
↑     ↑
getAge() setAge()

直接変更は禁止。

メリット

  • ✅ 不正な値を防ぐ
  • ✅ 保守しやすい

🧬 継承

共通機能を再利用する仕組みです。

          Animal

┌──────┴──────┐
│ │
Dog Cat
Animal
└─ eat()

Dog
└─ eat() ← 引き継ぐ

Cat
└─ eat() ← 引き継ぐ

メリット

  • ✅ コードの重複削減
  • ✅ 再利用性向上

🎭 ポリモーフィズム

同じ操作でも異なる動作を実現できます。

Animal animal

sound()


┌─────┴─────┐
│ │

Dog Cat

ワン! ニャー!

呼び出し側は同じコードでOK。

animal.sound();

実体によって動作が変わります。

⚡ Javaは進化し続けている

実はJavaは最近かなりモダンになっています。

📝 Lambda(ラムダ式)

従来

list.forEach(item -> {
System.out.println(item);
});

現在

list.forEach(System.out::println);

メリット

  • ✨ 記述量が減る
  • ✨ 読みやすい

🌊 Stream API

データ処理を宣言的に書けます。

List<String> result =
names.stream()
.filter(name -> name.startsWith("T"))
.toList();

メリット

  • 📖 コードの意図が伝わりやすい
  • 🔍 可読性向上

🛡️ Optional

Java開発者を悩ませる「NullPointerException」。

Optionalを使うことで安全に扱えます。

Optional<User> user = findUser();

String name =
user.map(User::getName)
.orElse("unknown");

メリット

  • ✅ Nullを明示的に扱える
  • ✅ バグ防止につながる

🎯 Pattern Matching

Java 16から利用できる便利機能です。

従来

if(obj instanceof String){
String s = (String)obj;
}

現在

if(obj instanceof String s){
System.out.println(s);
}

メリット

  • ✨ キャスト不要
  • ✨ コードがスッキリ

🔥 Java 21のswitch Pattern Matching

Java 21 ではswitch文もさらに進化しました。

return switch (obj) {
case String s -> "文字列";
case Integer i -> "整数";
case null -> "null";
default -> "その他";
};

メリット

  • ✅ 条件分岐が整理される
  • ✅ 型ごとの処理が分かりやすい

🌈 Javaを学ぶとできること

Javaを学ぶとさまざまな開発に挑戦できます。

  • 🌐 Webアプリ開発
  • 🔌 API開発
  • 📦 バッチ処理
  • ☁️ クラウド開発
  • 🏗️ マイクロサービス開発
  • 🎉 まとめ

Javaが長年愛される理由は、

✅ 安定性が高い
✅ 学習環境が充実している
✅ エコシステムが成熟している

さらに近年は、

  • Lambda
  • Stream API
  • Optional
  • Pattern Matching
  • switch Pattern Matching

といったモダンな機能が追加され、より読みやすく保守しやすいコードを書けるようになっています。

Javaは「昔からある言語」ではなく、🚀 今も進化し続ける現役のプログラミング言語 です。

これからJavaを学び始める方も、久しぶりに触る方も、ぜひ現代Javaの便利さを体感してみてください!

未経験から始める
システムエンジニア

一生モノのITスキルを身につけよう

あなたの経験とスキルを
ディアシステムで発揮してください!