#学習の目標
プログラミング言語のJavaの学習をします。学習の備忘録としてQiitaを使ってアウトプットしていきます。
まず、Javaの概要を学習します。
#目次
- Javaとは
- Javaの特長
- Javaの種類
#Javaとは
Javaとは、1995年に米国のサンマイクロシステムズ社(現オラクル社)がC++をベースとして開発したプラットフォーム非依存のオブジェクト指向のプログラミング言語です。
Javaは、プログラミン言語ランキングで常に上位になっているプログラミング言語で、多くの有名企業がJavaを利用したWebアプリケーションを構築しています。
#Javaの特長
プログラミング言語としてのJavaの特長を3つ説明します。
###コンパイル言語
プログラミング言語は大きく__「コンパイル言語」「スクリプト言語」の2つに分類されます。
コンパイル言語は、予めコンパイラによってコンパイル(人間が描いたソースコードを機会が読み取ることができるように変換する作業)を行ってからプログラムを実行するものです。
それに対し、スクリプト言語は、事前にコンパイルしておくのではなく、実行時に逐次逐次変換を行っていくプログラミング言語です。
代表的なコンパイル言語には「Java」「C」「C++」など、スクリプト言語には「JavaScript」「Python」「Ruby」「PHP」などがあります。
スクリプト言語は実行するたびに解釈を行うため、プログラムが途中までできた状態でも実行することができ、実行とプログラミングのサイクルを素早く回しやすい利点があります。コンパイルに時間をかける必要もありません。一方で、コンパイル言語は、事前のコンパイルにより実行する度にコードを変換する必要がないので、高速に動作します。また、文法がおかしかったり、エラーになる可能性があったりするコードをコンパイルという工程で検出することができます。もちろん全てがわかるわけではありませんが、スクリプト言語においては実行してみないとわからないエラーも、コンパイル言語では早い段階で段階で気付ける可能性が上がります。このコンパイルでわかるエラーのことを「コンパイルエラー」__と言います。
なお、これらは一般的な比較論にすぎず、書いたプログラムや実行環境などにより状況は異なります。大事なのはそれぞれの特長(得手・不得手)があり、使いたいシーンに応じて使い分ける必要があるということです。どちらか一方が優れているということではありません。
###プラットフォーム非依存
Javaは「一度書けば、どこでも動く」という思想があり、どんな環境でも動くプログラムを作れるプログラミング言語です。
今となっては当たり前になりつつありますが、Javaが登場する以前は、Windowsように作られたプログラムは、Windows上でしか動作しない、Macように作られたプログラムは、Mac上でしか動作しなというのが当たり前だったため、当時は画期的で、Javaが普及した1つの要因となりました。
###オブジェクト指向
オブジェクト指向とは、拡張性や保守性の高いプログラムを書くための考え方です。
プログラムが大規模になると複雑になり過ぎて、プログラムの追加や修正が難しくなります。オブジェクト指向プログラミングであれば、そのような問題に悩まず、大規模なプログラミングを作成できます。これもJavaが普及した1つの要因です。
#Javaの種類
###Javaのエディション
Javaには、目的別に3つのエディションがあります。
####Java SE (Java Platform, Standard Edition)
「Java SE」は、多くのJavaプラットフォームプログラムで利用される「Java API」の集合体で、標準機能をまとめたものです。
####Java EE (Java Platform, Enterprise Edition)
「Java EE」は、「Java SE」にWebアプリケーション用の拡張ライブラリなどを追加したものです。
Webアプリケーションを構築する場合は、このエディションを使用します。
####Java ME (Java Platform, Micro Edition)
「Java ME」は、リソースが制限されたデバイスなどで実行するアプリケーションの作成に必要な機能をまとめたエディションです。
###Javaの環境
####JRE (Java Runtime Environment)
Javaで作られたアプリケーションを動かすために必要なソフトウェアです。
####JDK (Java SE Development Kit)
JavaSEを利用してJava言語でプログラム開発を行う際に必要な開発用ソフトウェアをまとめたパッケージです。Javaプログラム開発を始めるための最低限のソフトウェアのセットで、Java SE、JREなどが含まれています。