Java プログラム

【Javaの基礎知識】Javaとは? Javaの基本概要をわかりやすく解説!

2020年4月13日

プログラミング言語を習得しようと思った時、必ずと言っていいほど候補として挙げられるのが「Java」というプログラミング言語です。

「Java」は、現在日本で最も使われている言語であり、非常に人気のあるプログラミング言語です。この記事では、「Java」の歴史と特徴について解説していきます。

Javaの歴史

Javaは1996年にサン・マイクロシステムズ社のGreenと呼ばれるプロジェクトで誕生した言語です。しかし、この誕生までには長い試行錯誤がありました。

1990年代以降、家電製品の機能は急速に発展し続けており、様々な企業が次々と新しいソフトウェアを開発しては、それを販売していました。

1991年、Greenプロジェクトでは「C++」という現在でも比較的普及している言語を拡張することで対応しようと試みたのですが、家電製品などのハードウェアに依存しない開発プロセスの仕組みを活かすためには、「C++」言語では不十分でした。この過程から生まれたのが、Javaの前身である「Oak」という言語です。

1994年以降インターネットが登場して間もなく、この「Oak」という言語を使って「WebRunner」と呼ばれるブラウザが開発されました。しかし「Oak」という名前には商標権の問題が絡み、やもなく名称を「Java」と変更することになりました。

現在の「Java言語」の誕生です。

1996年にJava1.0が正式にリリースされ、「一度書けばどこでも動く(write once, run anywhere)」という革新的なコンセプトは世界中に大きな衝撃を与え、一気に広まっていくことになりました。

Javaはそこからプラットフォームの再編が行われ、ソフトウェア開発向け、通信などのサービスを提供する企業向け、そして当初からの目的であるハードウェア組み込み向けに分かれていくことになります。

スマートフォン市場が急速に拡大した現在では、AndroidOSのオープンソースとしても使われていることから、今なお、世界中で絶大な人気を誇るプログラミング言語となっています。

このように、プログラミング言語の中では歴史のある「Java言語」は、その長い期間故に色々な場面で使用されており、今後もその勢いは止まらないでしょう。

Javaはハイブリッド型の言語

Javaが「一度書けばどこでも動く」というコンセプトで一気に需要が高まったことは先ほど説明しましたが、ここからはもう少し深くJavaの特徴について解説していきます。

Javaの大きな特徴として、Javaはコンパイラー・インタプリタ両方式の性質を持つ言語であるという点です。

コンパイラー方式とは、一度すべてのコードを機械語に翻訳しそれを実行する方式を指します。一方のインタプリタ方式とは、コードを一行ずつ機械語に翻訳し、それを実行する方式のことを指します。

これら両方の性質を持つとはどういうことかというと、まず人の手で書かれたJavaのソースコードはコンパイルによりオブジェクトコードという2進数の羅列である機械語に変換されます。

その後、オブジェクトコードがそれぞれのOSに合わせてインタプリタ実行されていくのです。この2段階構成であることで、Javaのどこでも動くというコンセプトにあるように、様々なOSで動かすことが可能となっているのです。

Javaはオブジェクト指向言語

Javaのもう一つの大きな特徴に、オブジェクト指向言語という点があります。オブジェクト指向とは、独立性や再利用性、拡張性に重点を置いたプログラミングの考え方のことで、これにより効率よく開発ができるようになっています。

このオブジェクト指向は複数人の手によってシステムが開発される際の効率性を高めるための考え方であることから、Javaなどの大規模システム開発に向いた言語で採用されています。具体的な仕組みとして、独立性では「カプセル化」、再利用性では「継承」、拡張性では「抽象化」が特徴としてあります。

カプセル化として、Javaではクラスという仕組みが使われています。これは学校のクラスと考え方は同じで、他のプログラムと区別することで中身が見えないように隠し、干渉されないようにしています。例えば、ログインする機能はAというクラスで実装し、メールを送信する機能はBというクラスで実装し分けることで、互いが依存することなく独立性を保持できるのです。

家クラスでの各部屋のカプセル化イメージ

継承とは、複数の機能で使われている共通部分を一つのクラスで作成しておき、それを他の機能を実装する際に利用することを指し、これにより同じコードを書く手間を省くことができます。また、もし共通部分の修正が必要な場合、この継承がないと同じ修正を使っている機能分修正にないといけないですが、継承していればこの共通部分だけの修正で済むため、効率が高まるのです。

家クラスを継承したマンションクラスのイメージ

最後の抽象化については継承と似ている部分があるのですが、継承は共通部分を具体的にクラスとして作りそれを各々の機能で再利用するのに対して、抽象化は漠然とした骨組みだけを共通部分として作成し、各々の部分でそれに肉付けするという考え方です。

家、マンション、フラット、船室を使用した抽象化のイメージ

イメージとしては、抽象的な内容を具体的な内容で上書きしているイメージです。これにより、中小部分はそのままに具体的な実装部分だけを修正すれば良いことになるため、余計な実装が削減できるのです。

「抽象化」については、いますぐに覚える必要はありません。Javaを習得していくうちに、いつか必ずその時が来ます。無理に覚えようとして、結局分からず辞めていく人が多いことから、今の段階で無理に覚える必要はありません。

このように、オブジェクト指向は複数発生しうる手間を1回にまとめることができ、それがJavaには適用されているのです。

Javaの基本は他の言語にもつながる

今回はJavaの基本的な概要について解説しました。Javaは歴史深いプログラミング言語であることから、後に出てくる多くの言語もこのJavaの考え方を反映させていることが多々あります。

そのため、プログラミング言語を初めて習得する際にJavaを学べば汎用性が高いと言われています。ぜひ、Javaのスキルを身につけてみてはいかがでしょうか。

よく読まれている記事

1

独立前は、誰もが不安でいっぱい。近い将来、フリーランスとして独立を考えている方が独立初期に躓かないために「独立前にやるべきことチェックリスト」をご紹介します。 当記事は前編となる「お金まわり編」。全て ...

2

ゲームなどのエンタメ分野での導入が進んでいるVR。言葉自体は耳にしたことがあっても、その意味を詳しく知らないという人も多いのではないでしょうか。また、次世代の新たな技術をビジネスに積極的に活用していく ...

3

フリーランスの確定申告には、青色申告と白色申告の2種類があります。いったいどちらの申告方法を選ぶべきなのでしょうか。 この記事では、青色申告と白色申告、それぞれのメリット・デメリットを把握することでベ ...

4

フリーランスの仕事場は、自宅をはじめとし、カフェや図書館、コワーキングスペースなど自由に選べます。しかし全ての場所で100%集中ができるどうかは、人それぞれです。どのような環境が自身の仕事場として快適 ...

5

フリーランスのITエンジニアとして、一番難しいのは「自己管理」と言えるでしょう。 自分の体調管理はもとより、仕事のスケジュール等すべて自分で管理します。もちろんフリーランスに有給休暇等ありませんから休 ...

-Java プログラム

Copyright© Beエンジニア , 2020 All Rights Reserved.