Javaの概要についてです。
目次
概要 | Javaの概要 |
Javaの開発環境 | |
Javaの特徴:実行時の動きとガベージコレクション |
Javaの概要
Javaはオブジェクト指向プログラミング言語です。
1995年にアメリカのサン・マイクロシステムズ社が開発し公開しました。
2010年にサン・マイクロシステムズ社は、オラクル社に買収されJavaの版権も移行しました。
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の種類
Oracleは、Oracle JDKとOracle OpenJDKを提供しています。
Oracle JDKの商用利用のサポートは有償です。
OpenJDKは各社、団体から提供されています。
フリーでオープンソースですがオプションで有償サポートがあるものもあります。
AdoptOpenJDK | Eclipse Foundation |
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仮想マシン)がバイトコードをCPUが実行するマシン語に変換してプログラムを実行します。
WindowsやLinuxなどのOS毎の違いを吸収してくれるのでプログラムを作成する側がOSの違いを意識しなくてよくなります。
Javaの機能:ガベージコレクション(GC)
ガベージコレクションは、使用されなくなったメモリ領域のデータを自動で削除し再び使用できるようにする機能です。
ガベージ(Garbage)はゴミ箱という意味です。
プログラマーはメモリ領域を解放する処理の記述をしなくて良くなります。
CやC++では、プログラマーがメモリ領域を解放する処理の記述が必要です。
メモリ領域が解放されずメモリが大量に使用されててしまう現象はメモリーリーク(memory leak)と呼ばれます。
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を出力します。
関連の記事