Javaは暮らしを便利にするスマホアプリや今や必須となっている業務系システムなど、ほぼ全ての分野で使われています。
また、言語の中でも比較的学習コストが低くネットでもいろいろな情報が溢れているため、一般的に思われている「プログラミング=専門性が極めて高い」ということはなかったりもします。
そこで今回はこれからJavaを学習しようと考えている方のために、Javaとは何か?Javaではどんなことが出来るのか?学習の方法は?など、基本から少し小難しい内容までわかりやすく解説してみたいと思います。
この記事を読んでJavaマスターへの第一歩を踏み出してみてください。
目次
Javaとは
Javaはプログラミング言語のひとつです。
もっとも習得したい言語としても人気No1を常に記録するなど世界中で期待されています。
この人気の高さを裏付ける理由は何といっても「非常に多くの場面で使われている」という部分だといえます。
またJavaの開発コンセプトとして「OS依存のない汎用性」ということもあり、プラットフォームを選ばないことが急速にJavaを普及させる要因となりました。
WindowsやOSXなど多くのOSがある中で、以前はそれぞれ環境ごとに異なった言語や仕様で一から作り直していましたが、これが統一されたことによるプログラマーの負担軽減は計り知れません。
こういったことから、今やスマホアプリだけにとどまらず、交通システム、果てには銀行のような厳格な場所におけるシステム全般までもJavaが担っています。
Javaで出来ること
JavaはOS依存がないため、ソフトさえ作ってしまえば環境を選ばず動作させることが出来ます。
皆さんにとって一番メジャーなJavaを使ったアプリといえば、スマホ以前に多くのユーザーに使われていた携帯電話(ガラケー)でも動作するJavaサーブレットを使ったアプリケーションではないでしょうか。
色々なサイトでも紹介されているように、ゲームにおいてもJavaで開発されているものは多く存在します。
有名なところで、MinecraftがJavaで開発されていることは既に世界中で周知の事実です。
またJavaはサーバーサイドプログラムとしても優秀です。
ベストプラクティスかどうかは別ですがWebサイトとサーバーを繋ぐ役割も出来るため、Webサイトの構築などにも一躍買っています。
Javaのメリット
先ほどから何度も申し上げているように、Javaの最大のメリットはOS依存性が無いという部分だといえますが、これ以外にもJavaには多くのメリットがあります。
- OS依存が無いため、環境を選ばない
- 処理速度が速い
- 開発コストが他の言語に対し低い
まず一つ目は、Javaはコンパイラ言語であるためPHPやRubyと比べ処理速度が速いという点です。
二つ目は、開発する上では非常に大きなメリットとなっていると思われますが、Javaは「オブジェクト指向」の言語であるため、作業に係る開発コストが他の言語に比べ低いことが挙げられます。
Javaのデメリット
Javaのメリットについては恐らく理解していただけたと思いますが、当然Javaにもデメリットは存在します。
- 開発環境を整えるまでの作業が多い
- コンパイラ言語であるが故にアプリケーションを起動する必要がある
- 今ではフレームワーク主体となっているため、基本的部分に対する学習が困難な場合がある
どんな言語でも開発するためには開発環境を整える必要があります。
JavaはEclipseというIDE(統合開発環境)で使われることが多い言語ですが、何の知識もない方はこの統合開発環境を整えるための事前準備に非常に多くの時間を費やします。
またJavaはコンパイルが必須となるため、必ずアプリケーションを起動させる必要があり、PHPのような言語と比較すると煩雑といえます。
学習に対しても同じことが言えますが、開発現場で使用されているJavaはフレームワークが主体となっています。
このため、Javaの学習を始めたての方にとっては、Javaの基本的な情報に対する答えを見つけることが難しい場面が多々あります。
インターネットで検索してもらえばすぐにどういうことかを理解してもらえると思いますが、Javaの初級~中級程度の情報はネットで検索しても、単体ではなかなか見つからないということもよくあります。
こういったことから、開発言語を決めかねている方は、これらのデメリットについてもしっかりと理解したうえで総合的に判断すると良いかもしれません。
オブジェクト指向について
先ほどJavaはオブジェクト指向のプログラミング言語と説明しましたが、オブジェクト指向とは一体どういうことなのか簡単に解説していきます。
オブジェクト指向とは、プログラムに必要な動作などを一つ一つの部品として細分化し、最後にそれらの部品を結合させて一つのプログラムを完成させるというものです。
この手法を使っている言語はJavaの他にもC#などが存在しますが、C#はJavaに比べ記述ルールが厳格なためJavaのそれとは若干異なります。
これらの部品はclassと呼ばれます。
開発系の知識を若干でも有している方なら耳にしたことがあるかもしれませんが、「カプセル化」とは一般的にはこの”classの作成”を指します。
プログラミングにおけるカプセル化とは、”データとメソッドを一つのオブジェクトにまとめ、再利用できるようにモジュールにする”ことだといえます。
Javaを扱う上で知っておくべきこと
Javaを扱う上で知っておいた方が良いことについて少しだけ紹介しておきます。
Javaはオープンソース型ライセンスとなっていますが、大本の権利はOracle社が所有しています。
そのOracle社が配布しているJDK(Java Development Kit)はバージョンが更新される毎に何かしらの仕様変更がなされています。
例えばメソッドやクラスの追加といった内容などが挙げられますが、代表的なものとしてはFor構文の仕様変更でしょう。
このバージョンアップは2018年までは3年毎に1回でしたが、2019年からは6か月毎にバージョンアップを行うとの発表がありました。
また同時に、バージョンアップ毎に必ず一つ以上の新機能を追加することをOracle社が公言しています。
よって、今後は半年に一度は必ずJavaの新機能についてネットで検索をした方が良いでしょう。
Javaの基本
ここまでの記事でJavaの概要はご理解いただけたと思いますので、ここからはJavaの基本的な記述について解説していきます。
まずはじめに、Javaはクラスとメソッドで構成されていますが、このクラスとメソッドとは何でしょうか?
車に例えるとクラスは「エンジン」や「タイヤ」であり、メソッドはそのエンジンやタイヤが持っている機能だと思ってください。
以下のコードはJavaで使われるclassの基本的な記述方法です。
class クラス名 { メソッド名 (引数) { 実行したい処理 } }
車を作るために必要な部品をクラスとし、これらの部品を必要な数だけ作ってメインフレームで結合させます。
メインフレームとは以下のコードのような実行させるために必要なパブリッククラスを指します。
public class Main{ public static void main(String[] args){ 実行したいクラスやメソッドを記述 } }
皆さんがよく目にするのは「実行したいクラスやメソッドを記述」と書かれた部分に”System.out.println(“Hello World!”);”と記述されたサンプルコードだと思います。
「世界一有名なプログラム」として色々な学習サイトで紹介されていますが、学習を進めていくにつれてこの部分に沢山のクラスやメソッドを記述する事となるわけです。
Javaの実行手順
ここまではJavaの概要について解説をしてきました。
ここからは実際にJavaで開発を行う上で直接必要となる「手順」について解説していきます。
なお今回の記事ではIDEを使用しますので、事前にIDE(統合開発環境)をインストールしておいてください。
お勧めはEclipseですが、それ以外のIDEでも問題はありませんので、自分の使いやすいものをインストールしていただいて構いません。
また、ターミナル(Windowsで言うコマンドプロンプト)を使用する際には、使いやすいように予め環境変数の設定を行っておきましょう。
環境変数の設定がわからない方は「Java 環境変数」で検索すると沢山出てきますので、参考にしてみてください。
それでは早速Javaの実行手順について見ていきましょう。
Javaの実行手順は大きく分けて以下のようになります。
- プログラムコードの作成
- プログラムコードをコンパイルしてクラスファイルを作成する
- クラスファイルの実行
基本的にどんな大きなシステムもこの流れを汲んでいます。
システムの大小による開発の違いは、二つ目の「プログラムコードをコンパイルしてクラスファイルを作成する」という部分だけだと思ってください。
プログラムコードの作成
まず何はともあれ実行するためのファイルを作成しましょう。
今回は例として以下のコードを実行することにします。
class Sample{ public static void main(String[] args){ System.out.println("Hello World!"); } }
統合開発環境で上記コードを記述し保存すると拡張子が「.java」のファイルが出来るはずです。
この記事ではこのファイルを「Sample.java」とします。
コンパイルする(“ファイル名.class”の作成)
では次に先ほど作ったファイルを実行可能なファイル形式に変換します。
この作業をコンパイルといいます。
今回はコンパイルにコマンドプロンプトを使用します。
プロンプトで以下のコマンドを入力し実行してください。
javac ファイル名.java
初心者の方によくありがちな間違いとして、コンパイルに使うコマンドを”java”と入力してしまうことがあります。
“java”ではなく”javac”ですので注意してください。「c」はコンパイルの頭文字です。
今回は先ほど作ったファイルを使用しますので、ファイル名には”Sample”と入力します。
コンパイル時に拡張子の記述が無い場合にはエラーが発生するため、必ず拡張子も入力します。
コンパイルが完了するとコンパイルしたファイルと同じフォルダに、拡張子が「.class」となっている同名のファイルが作成されているはずです。
ファイルの実行
ファイルの実行には以下のコマンドを使用します。
java ファイル名
今度は”javac”ではなく”java”です。
また、コンパイル時に必ず必要だった拡張子は、ファイル実行時には必要ありません。
今回は「Sample.java」の実行ですので”java Sample”となります。
成功すればターミナル(コマンドプロンプト)に”Hello World!”という文字列が表示されているはずです。
これでJavaの実行手順はご理解いただけたと思います。
まとめ
いかがでしたか?
今回はJavaに関しての概要やメリットとデメリット、また使い方などに焦点をあてて解説してみました。
Javaは今後ますます必要とされるであろう言語であるため、求人件数も右肩上がりで増えています。
更に2020年からは5Gの時代が到来し、これによってさらに暮らしの中で色々なシステムが増えると予想されますので、Javaを学習しておくことで就職も有利になります。
開発言語の学習で悩んでいる方も、この記事を読んでJavaに少しでも興味を持っていただけたら大変うれしく思いますので、ぜひ一度トライしてみてください!