Javaに関しては学生時代に触っていましたが、その後社会人になってから触ることがありませんでした。
今後触る可能性が少し出てきたので、復習がてらにJavaを再度学びなおしたいと思います。
【初心者用】Javaについて
1. そもそもJavaって何?
JavaとはC言語やC++をベースに開発されたオープンソースのプログラミング言語になります。
Javaで作成したものはOSなどの動作環境を選ばずに動作する汎用性の高さから世界中で需要があります。
Javaがこれだけ長く人気が根強いのは、上記で言ったように基本的にどんな環境でも使用できる言語なのが大きな要因となっています。
Javaで開発できるものとして、システム開発、Web開発、アプリケーション開発などと使用できる範囲が多く、様々な開発に使用されています。
主に使用されているのは大規模システム開発やAndroidアプリの開発に使用されています。
Javaに似たような名前でJavaScriptというものがありますが、こちらに関してはJavaのように業務システムやAndroid向けのアプリ開発とは違い、Webブラウザ上のサイトなどの開発に使用されます。
2. Javaの特徴
Javaには以下の様な特徴があります。
■実行環境に依存しない
Javaの利点としてJVMという専用のJava仮想マシンで中間コードに変更して実行されるため、Javaの動作に関してOSやハードウェアに依存しません。
Javaでプログラムを記述することで、Windows,MacOS,Linux,UNIXなど各種OSのどれでもプログラムが実行することができます。
このようにシステムごとにコードを変更することがなく、非常に使いやすい言語であるため様々な開発現場で使用されています。
■技術的な安定性が高い
Javaは開発をサポートするAPIやライブラリなどが豊富にあるので、様々な開発に対応することができシステムの効率化が図れます。
また、Javaは歴史的に長く利用人口も多いため、改良が定期的に行われているのでバグなどが発生した場合の対応など含め安定性が高い言語となっています。
■オブジェクト指向の言語
オブジェクト指向とはプログラミング言語をものとして考えて、そのモノとモノの関係性を定義することで組み立てる考え方です。
各機能をモノととらえることで、部品ごとのソースコードの再利用や機能追加、修正が簡単にできるようになり、複数人での開発する際にもわかりやすく作業の分担がしやすくなります。
オブジェクト指向の考え方を学んでおくことで、効率的な開発をすることができます。
■ガーベージコレクタがメモリを自動管理する
ガーベージコレクションという機能がJavaにはあります。
ガーベージコレクションにはごみ収集という意味があり、この機能により不要になったメモリを自動的に処理してくれます。
この機能がなければ不要になったメモリが残り、メモリ容量が圧迫されてしまうためメモリ不足によりコンピュータの処理能力が低下してしまいます。
ですので、この機能があることにより自動的にメモリの効率を上げてくれます。
■情報が豊富
Javaは歴史が長いので利用人口も多く、書籍やインターネットから必要な情報を得られます。
歴史が長いため情報が少ないので分からないなどということは起こらず、スムーズに学習を進めることができます。
3. Javaのメリット
Javaを学ぶメリットとして以下にまとめます。
■クロスプラットフォームで利用できる
Javaはプラットフォームに依存しないせずに、JVM上で実行されるので違うOSでも動作をすることができます。
■豊富なライブラリとフレームワーク
Javaはオープンソースのプログラム言語で、正解中で多くの開発者が利用しています。
そのため、多くのライブラリやフレームワークが開発されており、それらの機能を使用することで開発効率を向上させることができます。
また、標準ライブラリが備わっているので、外部ライブラリと共に組み合わせることにより、高度な機能を簡単に実現することができます。
■日本語での使用が豊富で学習がしやすい
歴史が長い分情報が豊富なので、書籍やインターネットから素早く情報収集を行うことができます。
コンパイルや・エラー、処理に関しても疑問点があれば解決をすることができます。
4. Javaのデメリット
Javaにもいくつかはデメリットがあります。
以下にデメリットについてまとめます。
■Javaでも動作しない環境がある
JavaはJVMが入っていることでどのOS環境でも動作ができますが、JVMが導入されていない場合だとJavaは動作することができません。
・JVMとは
JVMとはJava Virtual Machineの略称で、Javaのプログラムを動かすために必要なソフトウェアとなっています。
Javaは一度プログラムを書くことができれば、どの機器でもJavaが動くことを理想として作られた言語です。
そのため、JVMを中間コードとしてプラットフォーム別に命令文を変換するための仮想マシンが実装されました。
JVMはJava仮想マシンやJavaVMなどとも言われています。
■Javaのオブジェクト指向・設計に手間がかかる
Javaはオブジェクト指向の考え方や、設計の習得するまでにかなり時間がかかる言語です。
プログラミング言語の仕組みを理解することだけではなく、仕事をするためにプログラミング言語の学習範囲外も学ばなければいけません。
Java言語はオブジェクトを作成する必要があり、オブジェクトの作成を中途半端な技術で設計してしまうと根本から作成しなおさなければならない可能性も出てきます。
ですので、オブジェクト指向の考え方やネットワーク・ハードウェア系の知識がなければ仕事をすることができないこともあります。
5. Javaでできること
Javaは汎用性が高いため様々な分野の開発に利用されています。
以下に代表的な開発についてまとめます。
■業務システム開発
Javaで開発できるものの一つに業務システムがあります。
金融系や予約管理システムなどはJavaで作成されているものが多いです。
■Androidアプリ開発
AndroidアプリはAndroid自体がJavaで開発されていることもあり、同じようにJavaで開発されることが多いです。
最近ではJavaと同じくJVM上で動作する、KotlinなどもAndroidアプリ開発で使用されています。
■Webアプリケーション開発
Javaはフロントエンド側の開発ではなく、処理を行うサーバー側のプログラム開発に使用されています。
バックエンド側の開発にはPHPやRuby、Javaなどが使用されています。
■ゲーム開発
Javaでゲーム開発をすることができます。
有名なところですとMinecraftなどがJavaを使用して開発されています。
6. まとめ
Javaついてしっかりと理解することがなかったので、今回まとめることにより少しJavaがどんなものが理解することができました。
今後も少しずつJavaや他言語などの開発について学んでいきたいと思います。