【初心者向け】Javaとは何か?

【初心者向け】Javaとは何か? サムネ画像

Javaは、堅牢で安定した構造を持つプログラミング言語で、幅広い分野で利用されています。
1995年にサン・マイクロシステムズ(現在はオラクル社)が開発し、世界中の多くのシステムやアプリケーションで活用されています。
この記事では、Javaの基本情報、特徴、用途、簡単なサンプルコードを紹介します。

目次

Javaの特徴

1.オブジェクト指向

Javaは「オブジェクト指向プログラミング(OOP)」に基づいて設計されています。
OOPにより、開発者はコードを部品ごとに分けて管理しやすくし、メンテナンスや再利用をしやすくします。

2.プラットフォームに依存しない

Javaは「Write Once, Run Anywhere(WORA)」の考え方を取り入れており、一度書いたJavaプログラムを、対応するJVMがあるさまざまな環境で実行できます。
例えば、Windows、macOS、Linuxでも同じプログラムを実行できるのが大きな特徴です。

Javaはどうやってさまざまな環境で動くの?

では、なぜJavaはWindows、macOS、Linuxなど、異なる環境で同じプログラムを動かすことができるのでしょうか?

その理由の一つが、JVM(Java Virtual Machine)です。

Javaでは、書いたプログラムをそのままOS上で実行するのではなく、まずバイトコードと呼ばれる形式に変換します。

Javaのソースコード
↓
コンパイル
↓
バイトコード
↓
JVM
↓
Windows / macOS / Linux


Javaのソースコードをコンパイルすると、.classファイルというバイトコードが生成されます。
このバイトコードを、各OSに対応したJVMが読み取って実行します。
そのため、基本的には同じJavaプログラムを、Windows用、macOS用とそれぞれ書き直す必要がありません。

つまり、
JavaのプログラムそのものがOSに直接依存するのではなく、JVMがOSとの違いを吸収してくれる
という仕組みになっています。
これが、Javaの「Write Once, Run Anywhere」という考え方を支える重要な仕組みの一つです。

3.豊富なライブラリとAPI

Javaには、多くの標準ライブラリとAPIが用意されており、開発に必要な機能を簡単に追加できます。
データベース操作:JDBC
ネットワーク通信:java.net パッケージ
API GUI開発:Swing、JavaFX
これらを使えば、より効率的に様々なアプリケーションを開発することが可能です。

4.セキュリティ機能が充実している

Javaには、暗号化や認証など、安全なアプリケーション開発を支えるさまざまなAPIや仕組みが用意されています。
※以前利用されていたSecurity ManagerはJava 17で非推奨となり、JDK 24では無効化されています。

JVM・JDK・JREの違い

JVMとは?

JVM(Java Virtual Machine)は、Javaのプログラムを実行するための仮想マシンです。

Javaのソースコードは、まずコンパイルされて「バイトコード」という形式になります。
JVMがバイトコードを読み込んで実行することで、Javaのプログラムを動かすことができます。

WindowsやMacなど、それぞれの環境に対応したJVMがあるため、同じJavaプログラムを異なるOSで動かしやすいという特徴があります。

JDKとは?

JDK(Java Development Kit)は、Javaのプログラムを開発するために必要なツールをまとめたものです。

例えば、Javaのソースコードをコンパイルするjavacなどが含まれています。

簡単にいうと、

  • JDK:Javaを開発するための道具一式
  • JVM:Javaのプログラムを実行するもの

という違いです。

JREとは?

JRE(Java Runtime Environment)は、Javaのプログラムを実行するための環境です。

以前は「JDKの中にJREがあり、その中にJVMがある」という形で説明されることが一般的でした。

ただし、現在のJavaではJREを単独で意識する機会は少ないため、まずは「JDKで開発し、JVMで実行する」と覚えておけば十分です。

Javaの主な用途

Webアプリケーション

Javaは、多くの企業向けWebアプリケーション開発で利用されています。
例えば、Spring Frameworkなどのフレームワークを使えば、大規模なWebアプリケーションを効率的に開発できます。

Androidアプリ開発

Androidアプリ開発ではJavaも利用できますが、現在はKotlinが主要な開発言語として使われています。

組み込みシステム

JavaはATMや家電などの組み込みシステムにも利用されています。
特にメモリ管理機能や安全性が要求されるシステムでは、そのメリットが生かされています。

企業向けシステム

Javaは銀行システムや企業向けのアプリケーションでも多く採用されています。
堅牢でスケーラブルなシステムを構築するのに適しているため、長期間にわたり多くの企業で利用されています。

簡単なサンプルコード

以下は、Javaで基本的な足し算を行うプログラムのサンプルコードです。
このコードでは、ユーザーから2つの数値を入力して、その合計を計算し表示します。

Java
import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    // ユーザーからの入力を受け取る
    System.out.print("1つ目の数字を入力してください: ");
    double num1 = scanner.nextDouble();
    
    System.out.print("2つ目の数字を入力してください: ");
    double num2 = scanner.nextDouble();
    
    // 合計を計算
    double total = num1 + num2;
    
    // 結果を表示
    System.out.println(num1 + " + " + num2 + " の合計は " + total + " です。");
    
    scanner.close();
  }
}
STEP
Scanner クラスを使って、ユーザーからの入力を受け取ります。

STEP
入力された数値を加算し、その結果を total に保存します。

STEP
System.out.println を使って合計を表示します。

JavaとSpring Bootの関係

Javaを使ってWebアプリケーションを開発していると、Spring Bootという言葉をよく目にします。

JavaとSpring Bootは別物ですが、関係としては、

JavaでWebアプリケーションを作りやすくするために、Spring Bootを利用する

と考えると分かりやすいです。

Spring Bootとは?

Spring Bootは、JavaでWebアプリケーションなどを開発するためのフレームワークです。

Webアプリケーションを作るときには、画面表示やURLの処理、データベースとの接続など、さまざまな仕組みが必要になります。

Spring Bootを利用すると、こうした仕組みを効率よく構築できます。

例えば、

@GetMapping("/hello")
public String hello() {
    return "Hello";
}

のように、URLにアクセスしたときの処理を簡潔に書くことができます。

JavaとSpring Bootの関係

Java
└── プログラミング言語

Spring Boot
└── JavaでWebアプリケーションを開発しやすくするフレームワーク

という関係です。

つまり、Spring BootはJavaそのものではなく、Javaを使ってWebアプリケーションを作るための便利な仕組みです。
そのため、Spring Bootを学ぶときには、Javaの基本的な文法やオブジェクト指向などの知識が土台になります。

ガベージコレクションとは?

Javaには、ガベージコレクション(Garbage Collection)という仕組みがあります。

これは、プログラムの実行中に使われなくなったオブジェクトを自動的に見つけて、メモリを解放する仕組みです。

例えば、プログラムでオブジェクトを作成すると、メモリが使われます。

オブジェクトを作成
↓
メモリを使用
↓
使われなくなる
↓
ガベージコレクション
↓
メモリを解放

C言語などでは、メモリを自分で解放する必要がありますが、Javaでは基本的にこの処理を自動で行ってくれます。

そのため、Javaではメモリ管理の負担を減らしてプログラムを開発できるというメリットがあります。

ただし、不要になった瞬間に必ず削除されるわけではなく、ガベージコレクションが実行されるタイミングはJVMによって管理されています。

Javaのバージョン・LTSとは?

Javaには複数のバージョンがあります。
Javaはバージョンアップによって、新しい機能の追加や改善、セキュリティの向上などが行われています。

LTSとは?

JavaにはLTS(Long-Term Support)という長期サポート版があります。

LTSは、通常のリリースよりも長期間サポートされるため、企業のシステムなどで採用されることが多いバージョンです。
代表的なLTSには、

Java 8
Java 11
Java 17
Java 21
Java 25

などがあります。

そのため、Javaを学ぶときは「現在どのバージョンを使っているのか」を意識することが大切です。

例えば、Java 21を使っている場合、Java 21で追加された機能や、そのバージョンに対応したフレームワークを使うことになります。

まとめ

Javaは企業システムなどで広く利用されており、プログラミングの基本からオブジェクト指向まで体系的に学べる言語です。
企業向けのシステムからモバイルアプリケーション、Webアプリケーションまで、幅広い分野で活用されています。

何か簡単なプログラムを書きながら、Javaの特徴を体験してみると理解が深まるでしょう。
Javaを学んだ先で何をしたいのか考えながら理解していくと、より奥深さを感じられるかも知れませんね!

私自身、Javaを学び始めた頃は「クラス」「インスタンス」「コンストラクタ」など、聞いたことはあっても、それぞれが何をしているのか分からない状態でした。

実際にTODOアプリを作っていく中で、Java単体の文法だけではなく、Spring Bootやデータベースなど、さまざまな技術が組み合わさってシステムが動いていることを少しずつ理解できるようになりました。

この記事では「Javaとは何か」を整理し、これからJavaを学ぶ方が全体像をつかめるようにまとめています。

– 追記 –
Java はバージョンによって書き方が少し変わることがあります。プロジェクトに参加する前に、使うバージョンを確認しておくと安心です。
また、本や講座だけで完璧に覚えられるわけではなく、フレームワークやプロジェクトごとのルールに従って書くことが現場では求められます。
どこから手をつければいいか迷う場合は、GitHub などでよく整理されたプログラムを見て、まずは「理解すること」を目標にすると学びやすいです。

シェアしてもらえると嬉しいです
  • URLをコピーしました!
目次