【初心者向け】Javaの学習 はじめの一歩

アプリケーションやシステム開発に使用されるプログラミング言語は数多く存在しますが、その中でもJavaは世界中で利用されている人気の言語です。

でも皆さんの中には

・そもそもJavaとは何なのか?
・どんな特徴があってどんな使い道があるのか?
・どんなものが作れてどんな仕事ができるのか?
・どうやって学習すれば良いのか?
・どうやってプログラムを作って実行するのか?

という疑問をお持ちではありませんか。

 Javaをやってみたい! と思ってはいるけれど、どこから手をつけたらいいかわからない。Javaという言語があまりに巨大化してしまった今、はじめの一歩をどこからどうやって踏み出せばいのかわからない人が多くなっています。

そこで今回は、Javaの特徴や人気の理由、Javaの活用事例およびはじめの一歩についてご紹介します。

Javaとは

Java(ジャバ)は、アプリ開発など幅広い開発に使用されている人気のプログラミング言語です。

Javaはサン・マイクロシステムズが開発し、1995年に公開されました。現在は、サン・マイクロシステムズを買収したオラクルが開発を継続しています。発表当時から人気がありましたが、公開から20年以上経った現在でも、数多くの業務システムで利用されています。特に、世界のスマートフォンOSのシェア7割を超えるAndroid OSでは、当初からJavaが開発言語として採用されています。

ちなみに、よく間違われるのですが語呂が似ているJavaScript(ジャバスクリプト)とは全く別の技術です。

Javaの特徴

プログラミング言語としてのJavaの特徴を解説します。

オブジェクト指向のプログラミング言語

Javaはオブジェクト指向型の代表的なプログラミング言語です。

これは、Javaの大きな魅力です。オブジェクト指向は、大規模開発で役立ちます。オブジェクト指向とは、オブジェクト(モノ)を中心に設計を行うプログラミング手法です。

関数や変数をグループごとにまとめて管理する『クラス』や、以前作ったクラスを安全に再利用するための仕組み『継承』、オブジェクトの振る舞いを規定する『インターフェイス』など、さまざまな機能が用意されています。

また、メインの処理が複雑にならないので、一度理解できれば扱いやすく、バグの発生も容易に抑えられます。

JVM(Java Virtual Machine:Java仮想マシン)

Javaの最大の特徴はJVMJava Virtual MachineJava仮想マシン)」というもので動いていることです。

Java仮想マシンはその名前の通り、Javaの為に擬似的に作り出されたマシンです。

このマシンの上でJavaが動作します。

例えるなら、Java仮想マシンは「コンピュータ本体との通訳者のようなもの」で、Java仮想マシンさえ動作すればJavaはどんなコンピュータ上でも利用することが出来ます。

Javaで開発することで、たとえOSを入れ替えてもプログラムはそのまま使用することが出来るのです。

「新しいバージョンのJavaがインストール可能になりました。」というメッセージが表示されてJavaのアップデートした経験があるかもしれません。

このときに、JVMもアップデートされています。

技術的に安定している

Javaは公開から20年成熟しており、世界中で使っている人が多いため、バグが起こっても修正されやすく安定しています。また、Androidアプリの開発用プログラミング言語としてJavaが採用されており、大規模システムの開発を得意としています。

学習しやすく需要も多い

世界中で使われている言語のため、学習用の書籍やWeb上の情報も初心者用から開発者用まで幅広くあります。

Java自体は、C言語やC++の構文を多く引き継いでおり、C#やRudyなどJavaの影響を受けて作られた言語も多いので、Javaを習得することでほかのプログラミング言語も学習しやすくなります。

Androidアプリの開発言語になっているなど、利用シーンも幅広いため、Javaのエンジニアは需要があります。プログラミング言語を扱うエンジニアを目指すなら、Javaを習得しておいて損はないでしょう。

Javaが人気の理由

Javaは使用されている分野が多いだけでなく、これから習得したい言語としても長年プログラミング言語の人気ランキングの上位に挙がるほど期待値の高い言語といえます。それはなぜでしょうか?

OSにかかわらず実行できる

Javaはプラットフォームに依存しない言語です。「JVM(Java Virtual Machine:Java仮想マシン)」で動いており、このJVMがOSの差分を吸収しています。ORACLE社のホームページからファイルをインストールすれば、Javaの実行環境を構築できます。

また、Javaで作ったプログラムを動かすためのソフトをインストールしておけば、Windows、Mac、Linuxなど、OSや機器の種類を問わずにさまざまな環境(マルチプラットフォーム)で実行が可能です。

処理速度が速い

Javaは、数多くのプログラミング言語の中でも処理速度はトップクラスです。その理由のひとつが、起動にコンパイルを必要とするコンパイラ言語であるということです。

コンパイルとは、プログラムを実行するために、マシンが処理可能なファイルに変換することです。コンパイラ言語では、あらかじめコンパイル済みのファイルを用意してから実行するため、プログラム実行時にはコンパイルは行われず、その分、処理速度が速くなります。

セキュリティが高い

Javaは開発当初からセキュリティを考慮した設計となっており、ほかのプログラミング言語に比べて安定性が高く、セキュリティ面で信頼されています。そのため、第三者が作成したアプリケーションを安全に実行できます。

セキュリティが高いため、銀行や証券会社など、特に強固なセキュリティが求められる大規模システムに多く利用されています。

ライブラリが豊富にある

プログラミング言語には、「ライブラリ」と呼ばれるプログラムの部品や機能がありますが、Javaは特にクラスライブラリが豊富です。

多くのライブラリは無料で提供されています。ライブラリを使えば、さまざまな機能を自分のプログラムに簡単に組み込むことができ、一から機能を開発する手間を省くことができます。

Javaの活用事例

JavaはWeb上のシステム以外にも身近な分野で利用されています。Javaの活用事例をご紹介します。

業務システム

Javaで制作する代表的なアプリとしては「業務システム」があります。

オンラインで動作するもので、例えば運送会社の配送システムや、金融の取引システムなどもJavaで作られています。

業務システムでは多数の情報を管理するためにデータベースを使用します。業務システムで使われているデータベースのOracle DatabaseではJavaを使って開発することができます。

スマホアプリ

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

Googleが提供しているAndroid自体がJavaで動いており、そのアプリを作る時にもJavaが利用されます。

スマホアプリを作ることができるのは魅力的ですね。

CG・ゲーム開発

2Dの画像ベースのCGはもちろん、3D描画ライブラリを利用することで3D CGのソフトウェアもJavaで開発可能です。

ファインディングニモ』『トイストーリー』などは、Javaを使って開発された代表的な作品です。ゲームエンジンを利用すれば、オリジナルの3Dゲームも製作できます。

人気のクラフトゲームMinecraftもJavaで開発されています。Minecraftとは、ブロックを積み重ねて自由に建設物や町を作ることのできるゲームです。洞窟探検やモンスターなどを倒し、サバイバルを楽しむこともできます。

遊び方はあなた次第で、まさに「自由に遊べるゲーム」です。Javaでは、このような自由度の高いゲームを作ることも可能です。

Webアプリケーション

Javaは、組織内のシステムだけでなくWEBのサービスを支えるアプリも開発できます。例えば、Twitterのような大規模なWEBサービスなどもJavaで開発することができます。

TwitterはもともとRubyで開発されていましたが、その時はアクセスが集中すると処理をしきれず、クジラの画像のエラー画面が表示されていました。しかし、開発に使用する言語をRubyからJavaに変更してからは多数のアクセスを処理できるようになりエラー画面は出なくなりました。

このように、Javaは開発に時間がかかるため小規模なWEBアプリ開発には向きませんが、大規模なしっかりしたアプリを開発する際に使用します。



Javaの勉強方法

オススメ学習サイト

プログラミングやJavaは全くのはじめての方やまずはなんとなく雰囲気を掴みたい方はこちらです。

「マンガで分かるJava入門講座」

漫画で学べるサイト「マンガPG」内に「マンガで分かる Java入門講座」があります。テーマごとに、漫画→解説と続く構成(コラムだけのものもアリ)。漫画でハードルが下がる分、詳しく書かれている解説がしっかり頭に入りそうです。

公式サイト

ドットインストール

おなじみの初心者向けのプログラミング学習サイトです。

1本3分程度の動画レッスンが無料(一部有料)で提供されています。

Javaに関しては、現在のところ

  • 「Java 8 入門」(全43回のうち第5回まで無料)
  • 「Androidアプリ開発入門」(全10回・無料)

ドットインストール へ

Progate

こちらはスライドでの学習です。スライドでの説明ののち、演習問題という流れ。演習問題に正しく答えることができれば受講者の“Level”がアップ、学習へのモチベーションが高まります。

Javaは全7レッスン(32時間分)。無料会員なら基礎的内容のレッスンのみが受講でき、有料会員となれば全レッスンが受けられるようになります。

Progate へ

Schoo

こちらも動画学習サービス。プログラミングやデザインをはじめ、さまざまなジャンルの授業が3,000時間以上公開されています。会員登録するだけで無料で受けられる生放送授業を、ほぼ毎日開講。見逃した授業は録画で見ることができます(※録画授業をすべて見るには、有料のプレミアムサービスに申し込む必要アリ)

Javaに関しても

  • Java入門(同名で複数のコンテンツあり)
  • プログラミング言語Javaを深く知る-Java祭-

などの録画授業がいくつかあります。

Schoo へ

Let’sプログラミング

「初心者の方でも分かりやすい学習サイト」であるLet’sプログラミング。サイト内のコンテンツのひとつ「Java入門」では、Javaについて初心者向けに解説されています。プログラムの作成手順から用語の解説、実際に試せるサンプルコードまで丁寧に説明されており、入門編としては十分な範囲をカバー。

他にも「Android入門」や「Eclipse入門」※、「Java正規表現の使い方」といった、入門編を終えた次の段階のコンテンツもあります。

※Eclipse:開発に必要なツールがそろった統合開発環境。Javaによる開発でよく使われる

Let’sプログラミング へ

オススメの書籍

スッキリわかるJava入門 第2版

  • 著者:中山 清喬・国本 大悟
  • 出版:インプレスブックス
  • 価格:2,600円+税

amazon へ

Javaプログラミングの「なぜ?」がわかる解説と約300点の豊富なイラストで、”楽しく・詳しく・スッキリ”とマスターする構成を持つ書籍です。

特にプログラミング学習でネックとなりがちな「開発環境の準備」と「多発するエラーへの対応」については、この本独自の特典が。ブラウザ上でコーディング、コンパイル、実行ができる仮想開発環境「dokojava」を用意、エラー対応には巻末付録の「虎の巻」が用意されています。

Javaはどこから入る?

何事も基礎が大事

 もし、あなたがJavaをやってみようと思ったとしましょう。ただし、プログラミングの経験はほとんどない。

そういう場合、「Webサーバでの開発」とか「スマホアプリ」といったものは、とりあえず忘れてください。それらは、すべて「Javaの基本」がわかったところで学ぶべきものです。

 Javaの基本は、「Java SE(Java Standard Edition)」というものです。これは、普通のパソコン用の最も基本となるJavaです。このJava SEが、あらゆるJavaの中で「最初に学ぶべきJava」といってよいでしょう。

 サーバでのJava(一般に「サーバサイドJava」といわれています)は、これにサーバで動かすための機能を追加した「Java EE(Java Enterprise Edition)」として提供されていますし、携帯端末のJavaは、ここから不要な機能を取り除いて携帯専用の機能を追加した「Java ME(Java Micro Edition)」として提供されています。

要するに、「Java SE」がわかった上で、そこから必要に応じて機能を足したり引いたりして他のJavaができあがっているわけですね。また、Javaの言語仕様となる部分はすべて共通していますから、後で他のJavaに進むにしても学んだことは無駄にはなりません。

Javaの基礎を理解するとは

  従って、Javaを学ぼうと思うのなら、まずここで、Javaの基本をしっかり学んでください。その上で、サーバサイドやスマホアプリといったものに進んでいけばいいのです。

 とはいえ、このJava SE自体も、かなり大きなものであるのは確かです。ですから、最初からいきなり「Java SEのすべてを理解しなければいけない」などと考える必要はありません。あくまで「Javaの基礎」を理解する、ということを第一に考えましょう。具体的には、

  • Javaの基本的な文法
    これはどのようなJavaでもほぼ同じですが、Java SEで理解するのが一番です。
  • Javaで使われるさまざまな概念
    特にオブジェクト指向に関する考え方は、Javaだけでなくさまざまな言語で応用できる知識です。
  • Javaのクラスライブラリ
    Javaには、標準で「クラスライブラリ」と呼ばれるライブラリが付属します。その中のいくつかは、サーバサイドなどでも共通して使われる、最も基本的なものといってよいでしょう。

Javaを利用するために必要なもの

では、Javaを利用するには何が必要なのでしょうか。これは「ただJavaのプログラムを動かすだけ」の場合と、「Javaのプログラムを作成する」場合とで異なります。

  • Javaを利用するだけ
    「Java Runtime Environment」、略して「JRE」というものをインストールします。一般に「Javaをインストール」などという場合、このJREのことを示しているといってよいでしょう。
  • Javaで開発する
    「Java SE Development Kit」、略して「JDK」というものをインストールします。これは、パソコン用Javaである「Java SE」の開発キットです。これには、Javaの開発や動作に必要なソフトウェアが入っており、上のJREも含まれています。

 どちらもWebサイトで無料配布されています。JREは、java.comのサイトで配布されており、誰でも簡単に入手しインストールできます。JDKは、Javaの開発を行っているOracleのWebサイトで配布されています。

こちらは開発者向けのページで配布しているため、サイトにアクセスしてみても、なかなかこのページまでたどり着けない人も多いかもしれませんね。

Javaのダウンロード

※なお、「Java SE 8」については2019年1月を最後にアップデートが公開されなくなります。それ以降も脆弱性の修正やメンテナンスが必要な場合はOracleと長期サポート契約を結ぶ必要があります。(詳細は下記を参照ください)

orangeitems’s diary

総合開発環境

皆さんはJavaのIDEは何をお使いでしょうか。

Javaには優秀な開発ツールが多く用意されています。特に、統合開発環境(IDE)と言って、プログラムの開発、実行、デバッグ、リファクタリングなど、プログラムを完成させるまでに必要となる機能を一つにまとめた開発環境が用意されています。

Javaのデータは強い静的型付きであり、データの整合性を用意に検査できるため、統合開発環境を使うと、さまざまな支援機能を利用できます。

Javaの代表的な統合開発環境には、

  • Eclipse
  • NetBeans
  • IntelliJ IDEA
  • JBuilder

などがあります。

Javaプログラムを作ってみよう

それでは、実際にJavaのプログラムを作ってみましょう。ちなみに、Windows、macOSを問わず、多くの読者の皆さんのPC内には、既にJavaがインストールされているでしょう。

とは言え、それは、Javaの実行環境(JRE)のみである可能性が高いことでしょう。先ほど紹介したように、Javaは開発ツール(JDK)と、Java実行環境(JRE)に分かれているのです。

そこで、最初に、Javaの開発ツール(JDK)をインストールしましょう。

JDKのダウンロード

そして、表示されたページの「Accept License Agreement」をクリックし、自分が利用しているOSのインストーラーをダウンロードしましょう。

ダウンロードページを開いて、ライセンスに同意し、該当OSをダウンロードしよう

ダウンロードしたら、インストーラーをダブルクリックして起動し、何度か画面右下の[次]ボタンを押すと、インストールが完了します。

  

インストーラーを起動してインストールしていきましょう

次に、Javaの開発ツールを含んだ統合開発環境のIntelliJ IDEAを使ってみましょう。Windows/macOS/Linuxに対応しています。

IntelliJ IDEAのダウンロード

IntelliJ IDEAには、有償版のUltimateと、無償版のCommunityが用意されています。今回は、ちょっと試すだけなので、Community版をダウンロードしてみましょう。ただし、原稿執筆時点の最新版でインストーラーのファイルサイズが512MBほどもあるため、それほど気軽というサイズではないものの、インストール自体は簡単です。

インストールしたら、IntelliJを起動しましょう。初回起動時には、プライバシーポリシーが表示されるので、ライセンスを読んだら[Accept(同意する)]のボタンをクリックしましょう。

続いて「Set UI theme(見た目の選択)」など親切な選択画面が出ますが、適当に選びつつ画面右下のボタン[Next(次へ)]をクリックするか、画面左下のデフォルト設定[Skip Remaining and Set Defaults]をクリックします。

そして、以下のようなダイアログが表示されたら、[New Project(新規プロジェクト)]をクリックしましょう。

New Projectを選ぼう

画面左側から[Java]を選択して、画面右下の[Next]をクリックしましょう。

Javaを選択

ところで、WindowsではJDKのインストールパスを指定しなくてはなりません。以下の画面が出たら、画面右側上部のProject SDKの項目で、[New]のボタンをクリックしましょう。

続けて、「C:\Program Files¥Java¥jdk-***」(***はバージョン番号)を選択しましょう。

JDKのパスを指定します

次に、[Create project from template(テンプレートからプロジェクトを作成]にチェックして、[Next]ボタンをクリックしよう。

Command Line Appのテンプレートを元にプロジェクトを作成しよう

その後、[Next]と[Finish]のボタンを押すと、以下のようなJavaの開発画面が表示されます。

Javaを選択

そこで、以下のプログラムを書き込んで、実行ボタンを押してみましょう。

// パッケージ名の指定 — (*1)

package com.company; 

// 必要なライブラリの宣言 — (*2)

import javax.swing.*; 

// メインクラスの定義 — (*3)

public class Main { 

   // メインメソッドの定義 — (*4) 

   public static void main(String[] args) { 

       // メッセージを表示する — (*5) 

       JOptionPane.showMessageDialog(null, “Hello, World!”);

    }

}

すると、以下のようにダイアログが表示され、メッセージが表示されます。

Hello, Worldのプログラムを実行したところ

初めてJavaのプログラムを見る方は、間違いなく「長い」と思うことでしょう。Javaでは、ただメッセージボックスを表示するだけのプログラムでも、これだけのコードを書かなくてはいけません。

とは言え、今回、テンプレートを元にプログラムを書いたのですが、大半の部分が、最初から書き込まれており、実際に記述したのは、(2)のライブラリの宣言と、(5)のメッセージを表示する部分のコードだけです。

詳しく見てみましょう。(1)の部分ですが、Javaのクラスは、必ず何らかのパッケージに属することになっています。ここでは、パッケージ名を指定します。

(2)の部分では、メッセージボックスを表示するのに必要なライブラリを宣言します。(3)の部分では、クラス名を指定して、クラスの宣言を行います。(4)では、Javaのクラスを最初に実行するmain()メソッドを定義します。(5)の部分で、メッセージボックスを表示します。

ちなみに、統合開発環境の素晴らしいところですが、プログラムの最初の数文字を打ち込むと選択肢が表示されるので、そこから候補を選ぶだけでプログラムを記述できます。

そのため、実際には、それほどの労力は必要ありません。逆に言うと統合開発環境を用いないでJavaのプログラムを書くのは、現実的ではありません。



まとめ

今回は、プログラミング言語Javaについて紹介しました。Javaは発表から20年を経て、既に安定期に入っています。とは言え、堅牢な業務システムで使われている一方、Androidなど最新のモバイル機器の開発でも使われています。

2017年の統計では、Androidのアクティブユーザーは20億人に上るそうですが、その20億人の生活を、Javaで開発したアプリが支えています。この安定感から、Javaは今後も広く使われていくでしょう。

独学というと時間がかかりそうですが、Javaはメジャーな言語だけに、解決策がWeb上に数多く存在します。たとえ今学習に時間がかかってしまったとしても、そのプロセスは後々大きな財産になるはず。躊躇している方、ぜひチャレンジしてみてください!

シェアする

  • このエントリーをはてなブックマークに追加