Javaの特徴
Javaには様々な特徴がありますが、オブジェクト指向とは…と始めてしまうと解りにくく勉強のモチベーションも続きません。
ここでは、これから学んでいく上で前提となる特徴だけを説明します。
Java仮想マシン
C言語ではコンパイラにより実行可能なプログラム(exe)が作成されましたが、実はこのプログラムはWindows上でしか実行できません。
と言うのも、元来は各コンピュータ毎に異なる機械語で書かれていたプログラムを、人間が理解しやすいソースコードという形で記述してコンパイルすることでコンピュータの読めるプログラムにしていました(高級言語)。
それは実行環境が異なれば同じソースコードでも実行環境に依存してコンパイルし直す必要があるとも言えます。
そんな中で仮想マシン(Virtual Machine、以下VM)と呼ばれる仕組みが生まれました。
コンピュータやOSに依存する箇所はVMと呼ばれるプログラムで吸収し、そのプログラム上で作成したプログラムを実行します。
すると、実行するコンピュータ毎にVMは作る必要がありますが、作成したプログラムは全て再利用できることになります。
似た仕組みとしてはエミュレータと呼ばれるものがあります。
例えばMac用のWindowsエミュレータは、Mac-OS上で架空のプログラムを実行し、その上でならばWindowsのプログラムを使用できるというものです。