Java

【Java】プログラミング言語「Java」とは?思想とその特徴、JavaScriptとの違い

どうも、とがみんです。

Javaってどんな言語?JavaScriptとはどう違うの?といった疑問を持つ人は多いのではないでしょうか。

この記事では、Javaがどういうプログラミング言語なのか、どういう思想で設計され、どういう特徴があるのか。

また、JavaScriptとはどういう関係なのかについて紹介していきます。

プログラミング言語「Java」とは

「Java」は、1995年にサン・マイクロシステムによって公開されたオブジェクト指向プログラミング言語です。

「Java」はそもそも、家電製品を制御するために生まれたプログラミング言語で、どんな家電製品でも同じように動くように、プラットフォーム非依存であるように設計されました。

次にJavaの思想や特徴について紹介していきます。


Javaの思想と特徴

Write Once , Run Anywhere

Javaのコンセプトとして「Write Once , Run Anywhere」というものがあります。

これは、「一度書いたらどこでも動く」という意味で、Javaはさまざまなプラットフォームで動かすことができます。Mac、Windows、Unix、Linux等のOSに依存せず、Javaで書いたプログラムを動作させることができます。

Javaで作成したプログラムは中間コード(バイトコード)にコンパイルされ、それがJVM(Java Virtual Machine)上で動作するため、Javaで書いたコードはプラットフォームに依存しません。

その仕組みは以下のようになっています。

Javaで作成したプログラムは中間コード(バイナリコード)にコンパイルされ、それがJVM(Java Virtual Machine)上で動作します。

JVMが各OSに合わせたコードに変換するため、Javaでプログラムを書く際には、動くOSを気にする必要がありません。

このように、JVMがプラットフォームごとの違いを吸収してくれるため、Javaで書いたコードは、プラットフォームに依存せずに動かすことができます。

メモリの自動管理

Javaにはガベージコレクションといす、使わなくなったメモリーを自動的に解放してくれる機能が備わっています。

この機能が備わっているので、メモリの解放忘れによるメモリリーク問題(使えるメモリがなくなる)を防げ、かつ開発者はメモリの解放を意識したコードを記述する必要がなくなります。

メモリ解放:メモリに一時的に保存しておいたデータを消去する作業

JavaとJavaScriptとの違い

プログラミング言語の「Java」と「JavaScript」は名前は似ていますが、全く異なる言語です。
「Java」は、Java仮想マシンで動くのに対して、「JavaScript」は主にブラウザ上で動作するスクリプト言語です。

JavaScriptは、開発当初は「LiveScript」と呼ばれていたそうですが、マイクロシステムズが開発していたプログラミング言語「Java」が当時注目されていたため、それにのっかて「JavaScript」と変更したそうです。

>JavaSciptとJavaとの違い|Java

Javaが使われているシステム

Webサービス

Javaを使うことで、Twitter等のWebサービスを作成することができます。Twitterは、以前はRubyというプログラミング言語を使っていたそうですが、動作速度の観点からJavaでの開発にシフトしたそうです。

デスクトップアプリケーション

Javaはデスクトップのアプリケーションの作成にも使用できます。OSに依存しないため、PCにインストールして動かすデスクトップアプリケーションの作成も可能です。
例えば、Eclipseという、システム開発環境はJavaで作成されています。

>Eclipse

アンドロイドアプリ

JavaはAndroidアプリの開発にも使用されています。

家電等の組み込みシステム

組込み型システムは、アーキテクチャ、リソース、およびOS機能に関してはかなりばらつき
がありますが、Javaはプラットフォームに非依存なので、Javaでのコードの移植が他の言語と比べて大きな問題にならない

>組み込み型アプリケーションでJAVAを使う10の理由
>【初心者向け】これもJava? Javaで作れるものまとめてみた

まとめ

プログラミング言語「Java」の思想や特徴、またJavaScriptとの違いについて紹介してきました。

参考文献等

>【初心者向け】Javaの歴史を一通りなぞってみる
>【Java入門】JVMとは?わかりやすく解説!
>Java|Wikipedia
>Java/クイックツアー|Wikipedia
>Javaプラットフォーム|Wikipedia