目次
概要
JavaはC言語の構文を引き継いだオブジェクト指向のプログラミング言語。
ジャンル問わず使えることから、世界中で人気がある。
セキュリティを意識して開発された言語で、銀行の業務システムなどにも使われている。
特徴
JavaはC++、Pythonと並んで、Googleが開発に採用しているプログラミング言語のひとつである。
コンパイルを必要とするコンパイラ言語だから、処理速度がトップクラスに速いのが特徴。
Javaの統合開発環境(IDE)としては、Eclipse、IntelliJ IDEA、NetBeansなどが有名で、無料で使えるライブラリがたくさんあるのも魅力である。
仮想マシン「JVM」
「Java Virtual Machine(JVM)」という仮想マシン上で動作するため、環境によらずどんなOSでも動くのが特徴。
Javaのキャッチコピー「Write once, run anywhere(一度プログラムを書けばどこでも実行できる)」は、その性質を表している。
オブジェクト指向
Javaはオブジェクト指向のプログラミング言語である。
オブジェクト指向とは、ひとつのプログラムを構成する要素をパーツ分けして開発していくこと。Javaの他には、C#やRubyなどがそうである。
オブジェクト指向による開発は分業できるので、大人数で開発するプロジェクトに向いている。
開発した後で機能を拡張しやすいのもオブジェクト指向の特徴である。
しかしプロジェクトの展望を考えた設計にしないと、拡張する際に全て作り直しになる場合もあるので、初心者には難しいと言われている。
歴史
Javaは、1991年アメリカのSun Microsystemsによって開発が始まり、1995年にJavaとして発表。
2007年にオープンソース化されたのち、2010年にSun MicrosystemsをOracleが買収。現在はOracleによって提供されている。
名前の由来
もともと家電製品向けの技術として開発されていて、当初は「Oak」と呼ばれていた。
しかし「Oak」という単語はすでに商標登録されていたため「Java」に変更して正式リリースとなった。
「Java」という名称の由来に関して公式からの発表はなく、以下のような説がある。
- コーヒー好きな開発者がいた
- 開発に携わったエンジニア3人の頭文字から
- カフェのウェイトレスが来ていたTシャツの文字「It's a jungle out there, So drink your Java」から
- 「Just Another Vague Acronym」の頭文字から
- 行きつけのカフェの名前
中でも、classファイルの最初の4biteが16進数表記で「0xCAFEBABE」となっていることから、「カフェの名前」説が有力と言われている。
また、Javaと似た名前で「JavaScript」という言語があるが、全くの別物である。
実用性
Javaは幅広い分野のプログラムを作れるため、学んでおけばどんなジャンルのエンジニアとしても活躍できる言語である。
中でも、データベースと組み合わせた大企業での大規模なシステム開発が代表的。
Webアプリ・サービス
Javaは、大規模なWebアプリやWebサービスに使用されている。
デスクトップアプリ
Javaの開発環境「Eclipse」や、人気のゲーム「Minecraft」もJavaである。
Androidアプリ
かつてはJavaを用いて開発することが多くあった。現在はKotlinが採用されることが多い。
ちなみに、パフォーマンスが求められるシビアな場面ではCやC++がピンポイントで採用される。
組み込み系
Blu-rayでは、Javaを使った「Blu-ray Java(BD-J)」という技術を採用。
2007年11月以降に販売されたプレーヤーには搭載が義務付けられている。
業務系システム
高度なセキュリティを活かして、業務系システムに使われることも多い。
特に銀行などの金融系や顧客管理システムなどに使われている。
クレジットカード
クレジットカードのICチップにJavaを採用した「Javaカード」がある。
磁気カードよりも安全性が高く偽造されにくい。個人認証情報も管理できるため、身分証などにも応用され始めている。
Raspberry Pi
JVMがない環境では動作しないことから、マイコンボードを使用したガジェット開発には向かないとされていたが、Raspberry Piで最も多く利用されている「Raspbian OS」で、標準に利用することができる。
資格
Javaのプログラミング能力を示す資格として、以下のものが挙げられる。
- Oracle認定Javaプログラマ
- Javaプログラミング能力検定試験
- Android技術者認定試験
なお、Javaはオブジェクト指向を理解する必要があるため、習得するのはやや難しいと言われる。
その一方で、Javaを習得してしまえば他の言語を習得するハードルが下がるため、最初の言語としておすすめする人もいる。