Javaとは – Javaの概要

目次

Javaの概要

Javaは、1995年にSun Microsystems社が「一度書けば、どこでも動く(Write Once, Run Anywhere)」を目標に開発・公開したオブジェクト指向のプログラミング言語です。

現在はOracle社が管理しています。

 

Javaの特徴

特に5つ挙げるとすれば

オブジェクト指向 クラスとオブジェクトを中心にプログラムを組み立てます
プラットフォーム非依存 JavaプログラムはJVM(Java Virtual Machine)上で動くため、Windows・Mac・LinuxなどOSを問わず動作します
豊富な標準ライブラリ ネットワーク、ファイル操作、GUI、データベースなど多くの機能が標準で利用可能です
安定性・保守性 型安全・例外処理・ガーベジコレクションによるメモリ管理等の機能があります
セキュリティ重視 JVM上で動くため直接OSを操作しにくく、安全性が高いです

 
どこで使われているか

・Webアプリケーション(例:企業向け業務システム、ECサイト)
・Androidアプリ
・サーバーサイド開発(Spring Frameworkなど)
・組み込みシステム
・金融・業務システム
・ゲームのMinecraftでも使用されています。

 

Javaの仕様は誰が決定するのか

Java Community Process(JCP)で仕様を決定します。
メンバーは、Oracle社だけでなく、IBMやGoogleも入っています。

以下は、Java Community Process(JCP)とメンバーのリンクです。
https://www.jcp.org/en/home/index
https://www.jcp.org/en/participation/members

 

Javaのソフトを動かす/作るには?

Javaのソフトを動かすには?

Javaの実行環境であるJRE(Java Runtime Environment)が必要です。
JREは、以下のサイトで無料で入手できます。※Java 8まで
https://www.java.com/ja/

Java 11以降はJDKにJREが含まれるため、JDKをインストールするのが一般的です。

 

Javaのソフトを開発するには?

JDK(Java Development Kit)が必要です。
JDKには、JRE+Javaプログラムを開発するためのライブラリが入っています。

JDKには種類があります。

JDK 特徴 無償利用 備考
Oracle JDK Oracle社公式。商用サポートあり。 商用は有償(Oracle OpenJDKであれば無償) Java 11以降、有償ライセンス変更で話題に
OpenJDK オープンソース版Java(GPLライセンス) 無償 各ベンダーがビルド版を配布
Eclipse Temurin(Adoptium) Eclipse財団提供の安定ビルド 無償 以前のAdoptOpenJDK
Amazon Corretto AWS提供の長期サポート版 無償 商用利用可、長期LTS
Red Hat OpenJDK Red Hat配布版 無償(RHEL契約者向けはサポート付き) 主にLinux向け
Zulu(Azul Systems) 長期LTSや特殊アーキテクチャ対応あり 無償/有償 IoT向けなど幅広い
Liberica JDK(BellSoft) JavaFX同梱版もあり 無償/有償 ARM対応も強い

エディション(用途)で見た場合

エディション 用途 備考
Java SE(Standard Edition) 一般的なデスクトップ・サーバー開発 最も利用されている
Java EE / Jakarta EE(Enterprise Edition) 大規模業務システム・Webアプリ アプリサーバ(Tomcat, WildFlyなど)で利用
Java ME(Micro Edition) 組み込み機器・モバイル端末 現在はあまり主流ではない

 

Javaの長期サポート

JDK(Java)のバージョンには、LTSと書いてあるものもあります。

LTSとは、Long Term Supportの略で長期サポートという意味です。
長期サポートでない場合は、non-LTS版となります。
Oracle JDK 11は、LTS版です。

 

Javaの開発で使用されるツール

統合開発環境(IDE)

Java開発ではIDE(Integrated Development Environment)を使うことが多く、コード補完・デバッグ・ビルド・テストなどを一括管理できます。

IDE 特徴 利用シーン
IntelliJ IDEA 高機能。Spring開発に強い。有償版と無償版あり 企業・プロ開発
Eclipse 無償・オープンソース。プラグインが豊富 大規模システム、教育現場
NetBeans Oracle公式。Java EE対応。設定が簡単 中小規模開発
VS Code + Java拡張 軽量エディタにJava開発機能を追加 学習・軽量開発

ビルド & 依存管理ツール

ツール 特徴
Apache Maven XML(pom.xml)で構成管理。歴史が長く標準的
Gradle GroovyやKotlin DSLで記述。Mavenより柔軟で高速
Apache Ant 初期のビルドツール。現在はMavenやGradleに置き換えられがち

テストフレームワーク

ツール 特徴
JUnit 単体テストの定番
TestNG 並列実行や高度なテスト構成が可能
Mockito モックオブジェクト生成

 

Javaの動作の仕組み

プログラムを実行するまでの流れ

1.Javaのコードは、拡張子が.javaのファイルに記述されます。

2.コンパイラがJavaのコードをコンパイルすると、バイトコードになり、拡張子が.classのファイルが生成されます。バイトコードは中間コードとも呼ばれます。

3.ソフトウェアとして使用するときに、JVM(Java仮想マシン)がバイトコードをCPUが実行するマシン語(ネイティブコード)に変換してプログラムを実行します。

4.WindowsやLinuxなどのOS毎の違いを吸収してくれるのでプログラムを作成する側がOSの違いを意識しなくてよくなります。

 

Javaの機能:ガベージコレクション(GC)とは

ガベージコレクションは、使用されなくなったメモリ領域のデータを自動で削除し再び使用できるようにする機能です。
ガベージ(Garbage)はゴミ箱という意味です。
プログラマーはメモリ領域を解放する処理の記述をしなくて良くなります。
CやC++では、プログラマーがメモリ領域を解放する処理の記述が必要です。

メモリ領域が解放されずメモリが大量に使用されててしまう現象はメモリーリーク(memory leak)と呼ばれます。

 

Javaのサンプルコード

実行すると「hello world」と表示されます。

package test1;

public class Test1 {
	public static void main(String[] args) {
		
		System.out.println("Hello World"); // Hello Worldと出力される
		
	}
}

6行目で文字列のHello Worldを出力します。

 

関連の記事

JVMとJREとJDKとJava SEの違い

△上に戻る