Javaプログラムの種類一覧10選とJavaクラスの種類7つ

Javaとは

Java(ジャヴァ)は、コンピュータに様々な処理を行わせることができるプログラミング言語の種類の一つで、Android上やWeb上で動作するアプリケーションの多くがJavaで記述されています。

また、「マイクラ」の略称で知られ様々なハードでリリースされている人気ゲームMinecraft(マインクラフト)も、PC版はJavaで作られており、「Java Edition」という名前がつけられています。

文法はC言語・C++言語によく似ていて、多くの機能がC/C++から影響を受けていますが、それらの欠点が改良されている部分もあります。

Java言語の歴史

Javaは1990年代にサン・マイクロシステムズ社によって開発された言語です。この時代は家電製品にソフトウェアが使われるようになり始めた時代で、Javaは家電に内蔵するマイコン向けのプログラミング言語として開発されていました。

次々に出る新しいハードウェアに対応できるように、Javaはハードウェアの種類に依存しないソフトウェア開発プロセスと位置づけられ、一度プログラムを書いてしまえばどんな環境でも動作するように作られました。

その後、非常に人気の高いプログラミング言語の一つとして現在でも多くの開発者に支持されています。

Javaプログラムの種類10選

Javaプログラムは、開発の目的に合わせた便利な機能をひとまとめにしたJava SE・Java EEや、Javaを動かすための実行環境であるJREなど、様々な種類のものが配信されています。

初学者にとっては「それぞれどう違うの?」と混乱する原因になってしまうかもしれません。

この章では、様々なJavaプログラムの種類について、詳しく説明していきます。

Javaプログラムの種類1:Java EE

Java EEは、「Java Platform, Enterprise Edition」の略で、大規模サーバー構築用プラットフォームの一種です。

内容は後述するJava SE(Java Standard Edition)にサーバーサイドの機能や大規模システム向けの高度な機能を追加したものとなっています。

Java EEを使うことで、Webアプリケーション、Webサイトの構築をすることができるようになります。

Javaプログラムの種類2:Java SE

Java SEは「Java Standard Edition」の略で、Javaの基本的で汎用性の高い機能がひと纏まりになっています。Javaでプログラミングをする際最低限必要になる機能が入っているので、これからJavaで何かを開発しようとしている人はきっとJava SEのお世話になるでしょう。

また、パソコン向けなどの標準的なJVM(Java仮想マシン)はJava SEの仕様で動作します。そのためAndroid向けアプリケーションの開発にはJava SEの導入が必須となります。

Javaプログラムの種類3:Java ME

Java MEは「Java Platform, Micro Edition」の略です。

その名の通りJavaプログラムの中でもかなり軽量です。小型デバイス向けのアプリケーション構築を想定した開発環境で、非常にコンパクトな仮想マシンが核となっているので、メモリやCPUパワー、電源容量の限られるデバイスでも利用できます。

Javaプログラムの種類4:JavaBeans

JavaBeansは、Java言語で再利用可能な部品(モジュール)化されたプログラムを作るための仕様のことです。

データを保存する倉庫のようなもので、主にWebアプリでデータの操作を行う時によく使われています。JavaBeans内に保存したデータはprivateなデータになるため、あとから意図しない書き換えをされることを防ぐことができます。

外部からデータの内容を保護することはカプセル化と呼ばれています。

Javaプログラムの種類5:JavaServer Pages

JavaServer Pages(JSP)はサーバー上で動作させるJavaのプログラムのことで、HTMLで記述されたWebページ内に「<%」と「%>」で囲んで埋め込むという形でプログラムを記述することができます。

Javaプログラムで書き込まれた内容をWebサーバー上で実行することで、プログラムの内容を反映したページを動的に生成しクライアントに返すことができます。

Javaプログラムの種類6:JavaScript

JavaScriptはJavaとは異なるプログラミング言語の一つで、Webサイト・Webアプリなどに幅広く使われています。他の言語との違いとして、HTMLとJavaScriptを組み合わせることで、サーバーに処理内容を送らずともブラウザだけで動的な表現をすることが可能です。

元々Javaとは関係のない言語でしたが、開発元のネットスケープコミュニケーションズとサン・マイクロシステムズが業務提携していた縁で、この名前が採用されました。ですので文法などはあまりJavaと似通ってはいません。

Javaプログラムの種類7:JDK

JDKは「Java Development Kit 」を略した名称で、Javaを用いてアプリケーション開発するための必要最低限なソフトウェアを一つにまとめたソフトウェア開発環境キットおよび開発環境です。コンパイラ、デバッガ、アーカイバなどがこの中に含まれます。

JDKに対して、先ほど紹介したJava SE、EE、MEはSDK(ソフトウェア開発キット)と呼ばれます。

Javaプログラムの種類8:JRE

JREは「Java Runtime Environment」の略で、Javaのアプリケーションを動作させるために必要なソフトウェア群のことをいいます。

Javaのソースを実行する上で、JREは必ず必要になります。そのためJavaで開発されたアプリケーションをインストールした際、それに付随して一緒にインストールされることが多いです。

Javaプログラムの種類9:JVM

JVM(Java Virtual Machine)は先程述べたとおり、Javaの仮想マシンのことです。一般にプログラミング言語のコンパイラはWindowsやMac, linuxなどのOSごとに違うものが使用されるため、書いたプログラムは特定の環境でしか動かすことができません。

しかし、このJVMがプログラムを、それぞれのOSが理解できるバイナリコードに変換することで、どのようなOSの環境下でもJavaのプログラムを動作させることができるのです。

Javaプログラムの種類10:JDBC

JDBCは「Java DataBase Connectivity」の略で、Javaプログラムからデータベース管理システム(DBMS)を操作するための標準インターフェース(API)のことです。

JVMと同じ様に、プログラムとDBMSとの間をJDBCに経由させることで、DBMSの種類による仕様の違いに影響されることなく、簡単にデータベースにアクセスできるようになります。

Javaクラスの種類7つ

Javaでプログラミングをする上で、「オブジェクト指向」という概念を知っておく必要があります。

Javaにおけるオブジェクト指向は、プログラムの中で「クラス」という変数やメソッド(関数)などを含む設計図のようなものを作っておき、必要に応じてその設計図をもとにしたオブジェクト(「インスタンス」と呼ばれます)を作成するというものです。

また、一度作ったクラスの機能を継承した別のクラスを作ることもできます。これもオブジェクト指向の特徴です。

ここでは、Javaのオブジェクト指向を構成する「クラス」の種類について紹介していきます。

Javaクラスの種類1:インターフェース

interface(インターフェース)は、メソッドの仕様(戻り値、メソッド名、引数)だけを定義したクラスで、実際の処理内容は持ちません。そのため、実際使う時はメソッドなどの具体的な内容を書いた別のクラスを作成する必要があります。

何のためにこのようなものが必要なのかというと、仕様と実装の内容を分離するためです。

大人数での開発を行う際、仕様(約束事)が決まっていれば、具体的な実装方法を知らないでもそのクラスを使うことができますし、仕様さえ守っていれば実装方法を書き換えても問題ないというメリットがあるのです。

Javaクラスの種類2:抽象クラス

抽象クラスとは、それ自身ではインスタンスを生成できないクラスのことをいいます。抽象クラスに記述された内容を継承したクラスは、インスタンスを生成することができます。いわば、抽象クラスは設計図の設計図のようなものです。

これは、似たようなクラスを大量に作る必要がある時に便利です。

例えば、ゲームで敵キャラのクラスを大量に作るとします。キャラには体力や攻撃力、防御力などのパラメーターがありますが、全てのクラスにこのパラメーターを一つ一つ設定するのは面倒です。

そこで、「敵キャラ」という抽象クラスを作成してこれを継承した「敵1」「敵2」「敵3」…というクラスを作って、それぞれ違うパラメーターのみをクラスの中に書いておけば、同じ内容のパラメーターを何度も設定する手間が省けるのです。

Javaクラスの種類3:ラッパークラス

ラッパークラスはオブジェクト指向において、他のクラスや外部のプログラムなど、オブジェクトではない要素をオブジェクトとして扱いたい場合に使用されるクラスのことです。

「wrapper」は包装、包み紙という意味で、オブジェクトではない要素(int型の値など)を「メソッド」など必要なものと一緒に包んでオブジェクトの形にしてしまう、という意味で使われています。

Javaクラスの種類4:内部クラス

内部クラスはインナークラスとも呼ばれる、クラスの中に定義されるクラスのことです。

内部クラスを使うことで、それぞれのクラス間の関係が分かりやすくなり、シンプルなコードになります。また、内部クラスはprivate、publicなどといったアクセスレベルを指定することもできるので、クラスの外部から存在を隠すこともできます。

なお、内部クラスを持つクラスのことは外部クラスと呼ばれます。

Javaクラスの種類5:ファイナルクラス

一度作ったクラスを継承して、新たに機能を追加した別のクラスを作ることができることは前述しました。

ですが、クラスにfinalという文字を追加すると、このクラスは継承できなくなります。これをファイナルクラスといいます。

こうすることで、このクラスを継承した別のクラスによって親クラス(元のクラス)で宣言された値が変わるようなことがなくなるため、親クラスの安全性を保つことができます。

Javaクラスの種類6:コレクション

Javaを使う上で便利なのがCollection(コレクション)です。コレクションは、沢山のデータを一つのユニットにまとめたオブジェクトだと考えてください。

コレクションにはArrayListやHashSetなどといった種類が存在します。ArrayListはあるデータ型のデータを大量に保存できる、C言語の配列に近いオブジェクトです。また、HashSetは基本的にArrayListと似ているものの、データが重複しないという特徴を持ったコレクションです。

データを配列ではなくクラスであるコレクションに保存することで、コレクション内の要素の数をカウントして返したり、コレクション内に指定の要素があるかといった情報を、メソッドから得ることができるというメリットがあります。

Javaクラスの種類7:クラス型変数

C言語などを勉強したことがある方であれば「int」や「char」や「float」など、数字、文字データの入れ物である変数について知っているかもしれません。これらの変数(データ型)は「プリミティブ型」と呼ばれます。

それに対してクラス型変数とは、クラスを利用した変数のことです。前述の変数には「Integer」「Character」「Float」が対応します。

クラス型変数を使うことで、値を保持するだけでなく、数値を文字列に変換したり整数を小数に変えたりなど、保持している値を自由に操作できるようになります。

Java言語が就職に役立つ理由とは

Javaは先程も述べたとおり、大規模のシステムからWebサービス、アプリ・ゲーム開発、家電製品に至るまで幅広い分野で使われている汎用性の高い言語です。そのためJavaを使えることによっていろいろな企業で活躍できるチャンスが増えるといってもいいでしょう。

プログラミング言語別の求人数を見ても、他の言語と比較して常にJavaが上位に位置しており、ニーズが安定していることが伺えます。

Javaの種類を理解しよう

この記事で紹介したように、Javaプログラムにはアプリケーション開発やWeb開発などの使用目的に合わせてJava EEやJava MEといった様々な種類があり、Javaエンジニアになるにはそれぞれの違いを頭に入れておく必要があります。

それぞれの種類を正しく理解して、Javaを使いこなせるようになりましょう。