Java言語の特徴

Java言語はプログラミング言語の変遷の中では比較的新しい言語に属します。このため、それ以前開発されたプログラミング言語の利点や課題を踏まえています。
主にSmalltalkとC言語(C++を含む)をルーツとし、多少の違いはあるものの構文はANSI-C、オブジェクト指向プログラミングはCから発展したC++及びSmalltalkの影響が大きいでしょう。

Java言語の特徴

– オブジェクト指向
オブジェクト指向の特徴はいくつかあります。オブジェクト指向を取り入れたプログラミング言語もいくつかあります。つまり、オブジェクト指向プログラミング言語といってもみな同じではありません。オブジェクト指向のとらえ方で言語が持つ特徴は変わります。
そのような中で、Javaは理想を追求したSmalltalkと実用性を重視したC++の影響を受け、両者の特徴をバランス統合してオブジェクト指向開発に必要な要素をすべてそろえている言語だといえるでしょう。
– 可搬性
プログラムはプラットフォームに依存しないバイトコードとしてコンパイルされ、JVM(Java仮想マシン)により実行されます。従って、Javaプログラムはコンパイルされた後でさえ、JVMを搭載したプラットフォームであれば、再コンパイルすることなく実行できます。この移植不要という特徴(可搬性)はプラットフォームを特定できないWeb環境で他言語にない特徴になっています。
– 例外処理
プログラムが実現する処理と処理の過程で発生する可能性のある外乱に対する処理を構造化して分離し、プログラムの可読性と頑健性を高める仕組み。
– ダイナミックリンク
実行に必要なバイトコードを実行時に探しだし動的に結合しプログラムを実行します。これによりプログラマは、プログラムの一部を改変したときでもプログラム全体を再コンパイルする必要がありません。
– 型チェック
静的な型を持つため、コンパイル時に可能な限りのエラーチェックを行います。更に、コンパイル時に最適化も行います。
– メモリ管理
メモリ管理をユーザに任せずJVMがガベージコレクションを行うので、実行中に使用されなくなったメモリは自動的に解放されるため、メモリリークなどのバグが発生しません。また、ポインタ操作が公開されていないためメモリ破壊などのバグ発生が軽減されています。
– マルチスレッド
マルチスレッド対応の言語であり、複数の処理を同時に行なう必要があるネットワークアプリケーションやGUIアプリケーションの記述に向いています。

なお、Java言語の大きな特徴であるオブジェクト指向はコンピュータの大幅な性能向上、コンピュータの利用分野の拡大に合わせ1960年台後半に危惧された「ソフトウェア危機」に対応するための研究から生まれた、大きなプログラムをブラックボック化した小さな複数のプログラム(オブジェクト)によって構成するプログラミング概念であり、仕組みです。

オブジェクト指向プログラミングの特徴

– カプセル化
データと振舞いを隠蔽する仕組み。
– 継承
既存クラスの機能、構造を共有する新たなクラスを生成することができ仕組み。
– ポリモーフィズム
プログラミング言語の各要素(定数、変数、オブジェクトなど)を異なる型に置き換えて扱う事を許す概念。

Java言語に戻る