Javaとは – Javaの概要

Javaの概要についてです。

目次

概要 Javaの概要
  Javaの開発環境
  Javaの特徴:実行時の動きとガベージコレクション

Javaの概要

Javaはオブジェクト指向プログラミング言語です。

1995年にアメリカのサン・マイクロシステムズ社が開発し公開しました。
(サン・マイクロシステムズ社は、2010年にオラクル社に買収されました)

Javaは、write once, run anywhere(一度書いたらどこでも動く)を目的にしていて、異なるCPUやOSで動作させることができます。

 

どこで使われているか

Webアプリのバックエンド、Androidのスマホアプリのバックエンドとフロントエンド、サーバー、バッチ処理、家電向けの組み込みシステム等で使用されています。
ゲームのMinecraftでも使用されています。

 

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

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は、以下のサイトで無料で入手できます。
https://www.java.com/ja/

 

Javaの開発環境

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

 

JDKの種類

OpenJDKはフリーでオープンソースです。

Oracleは、Oracle JDKとOracle OpenJDKを提供しています。
Oracle JDKの商用利用のサポートは有償です。

AdoptOpenJDK  
Amazon Corretto Amazon
Microsoft Build of OpenJDK Microsoft
Oracle JDK Oracle
Oracle OpenJDK Oracle
Red Hat OpenJDK Red Hat

 

LTSとは

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

 

Javaの開発で使用される環境

統合開発環境(IDE)としてEclipse等あります。基本的に無料です。ダウンロードして使用できます。

Eclipse 開発元は、Eclipse Foundation。
NetBeans Oracleを中心として開発されている。
IntelliJ IDEA JetBrains社が開発
Android Studio Android向け

 

Javaの特徴:実行時の動きとガベージコレクション

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

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

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

Javaの機能:ガベージコレクション

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

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

Javaのサンプルコード

Javaのサンプルコードです。実行すると「hello world」と表示されます。

package test1;

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

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

関連の記事

JRE/JVM/JDK/とJava SE/EEの違い

△上に戻る