【初心者必見!】Javaとは?言語の特徴やメリットをわかりやすく解説

image (1)
井上 慎也
書いた人 井上 慎也

こんにちは!インストラクターの井上です!

突然ですが、プログラミング入門者にとって言語の特徴を掴むことはとっても難しいですよね。

「Java(ジャバ)」を例に出すと、それがプログラミング言語だということはわかっていても、詳しい内容が書いてあるWikipediaなどは難しい単語が羅列しています。

そのため、「結局調べても何を言っているのか意味が分からない」ということがあるかと思います。

そこでこの記事では、

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

といった内容を、初心者でも意味が分かるように専門用語を超噛み砕いてわかりやすく丁寧に解説していきます。

最後までお読みいただければ、Java言語について体系的に理解していただけるでしょう。

Javaとは?

shutterstock_362210810

言語の概要

Javaとは、アプリ開発で使用される人気のプログラミング言語のひとつです。

Googleが主に開発に用いている「Google三大言語(Java、C++、Python)」のひとつでもあり、とても応用力のある言語として昔から根強い人気を誇っています。

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

Javaは、大企業での大規模システム開発やAndroidアプリの開発などを得意としています。

Javaの特徴やメリットは?

shutterstock_362210810

どんなコンピュータでも使える

Javaの最大の特徴は「JVM(Java Virtual Machine:Java仮想マシン)」というもので動いていることです。

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

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

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

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

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

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

オブジェクト指向で開発する

Javaは、どんな小さなプログラムを作るのにも、「オブジェクト指向」という考え方が必要になってきます。

オブジェクト指向とは、モノ(オブジェクト)同士を関係させて、組み立てていくというプログラミングの考え方のことです。

例えばドラゴンクエストのようなRPGなら「勇者オブジェクト」「スライムオブジェクト」のように、意味づけした「モノ」を作って、お互いに攻撃しあってHPを0にしたほうが勝ち、といったルールをつけるという具合です。

実際に触ってみないと具体的にイメージ出来ないかもしれませんが、今は詳しく分からなくても問題ありません。

使いながらどういうものなのか理解していけばよいでしょう。

この考え方が理解出来るようになれば、とても効率のよいプログラムを組めるようになります。

ただ、使いこなすためには様々な知識が必要になってくるため、習得するまでにある程度の時間が必要です。

オブジェクト指向に関して詳しく解説されている記事もあるのでぜひ参考にしてみてください。

広く使われている

WEB上での検索数を記録する「TIOBE INDEX」を見ると、2017年現在Javaは堂々のシェア1位となっています。

それだけJavaプログラミングを行っている人が多いということを示しています。
TIOBE INDEX
TIOBE INDEX

沢山の人が使っているということは人気が高いということだけでなく、技術的に安定しており(バクなどが見つかっても修正されやすい)、プログラミング学習をする際に参考に見るサイトなどが多いということも表しています。

Javaのデメリットは?

初心者には技術的に難しい

Javaで仕事として開発を行う場合には、大規模なシステムを作る機会が多いので後から拡張しやすいように将来を見据えた設計が必要になります。

これは文法レベルの問題ではなく広い知識や経験が必要になります。

下手な設計をすると根本から作り直すようなはめにも陥る可能性があり、中途半端な技術で扱うものではありません。

Javaがプログラミング初心者にオススメできない理由については次の記事を参考にしてください。

学習コストが高い

Javaは学習コストが高く、学習から習得するまでに「大幅な時間がかかる」ことでも有名です。

プログラミング言語の仕組みを理解することが難しいというのは勿論ですが、仕事にするためには学習範囲はプログラミング言語の学習だけにとどまりません。

例えば、ネットワークやハードウェア系の知識がないと「仕事として成り立たない」ことも多いです。

小規模開発に向かない

Javaだけでなく、オブジェクト指向で開発する言語はオブジェクトを作成する必要があるため、簡単な機能を作るには手間がかかります。

小規模開発でPHPなどが多く使われるのはそのためです。

Javaでも動作しない環境がある

Javaの最大の特徴であるJVMですが、当然JVMが入っていないマシンではJavaは動きません。

そのため、マイコンなどのプログラムはできません。

Javaでどんなことができる?

業務システム

shutterstock_362210810

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

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

WEBアプリケーション

shutterstock_362210810

Javaは、組織内のシステムだけでなくWEBのサービスを支えるアプリも開発できます。

例えば、Twitterのような大規模なWEBサービスなどもJavaで開発することができます。

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

Androidアプリ開発

shutterstock_362210810

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

WEB系のサービス以外にもスマホアプリを作ることができるのは魅力的ですね。

Javaの仕事市場は?

Javaを習得することでどのような仕事が出来るのかを見ていきます。

リクナビNEXT

転職市場でシェアの高い「リクナビNEXT」の転職例を見てみましょう。

未経験からOKで下記のような年収が記載されています。

【年収例】
460万円/経験2年/月給33万円
740万円/経験5年/月給52万円
1030万円/経験9年/月給71万円
2016-03-30_15_33_56
リクナビNEXT

ポテパンフリーランス

続いてフリーランス向けにレベル分けして案件を紹介している「ポテパンフリーランス」を見てみましょう。

数年の経験で月収80万円という案件等がいくつもあります。

2016-03-30_12_46_21
ポテパンフリーランス

Javaは、開発市場としては衰えることなく需要が有るため、ある程度高い収入が見込めます。

高所得案件の必須スキルで、次に紹介する「フレームワーク」というものの経験も必要と書かれていますので、フレームワークについても簡単に見ていきましょう。

Javaのフレームワークは?

「フレームワーク」とは、各言語に用意されているアプリケーションの雛形のようなものです。

そもそもフレームワークとは何なのかという内容は次の記事で解説していますので合わせてご覧ください。

Javaには様々なフレームワークがあります。

「Spring」「Struts」というフレームワークが特に有名です。

より詳しく知りたい方は次の記事で解説していますので合わせてご覧ください。

もちろんJava以外にもフレームワークはあります。

どのようなフレームワークがあるのかを知りたい方は次の記事をご覧ください。

Javaの勉強方法と資格は?

shutterstock_362210810

Javaのおすすめ教材と勉強方法

Javaにはその人気の高さや歴史の深さから、様々な学習教材があります。

しかし中には、説明が難しかったり、内容が古いものもあったりして、良い教材を選ぶだけでもなかなか大変です。

そういった失敗をせずに効率よく習得していくためには、しっかりと自分にあったおすすめの教材を選んで、コツを抑えながら学習していくことが必要です。

Javaの学習に関しておすすめの教材・方法をまとめた記事がありますのでぜひご参考ください。

Javaの資格に挑戦しよう

Javaの資格は2つの種類に分けられます。

日本オラクルが提供するオラクル認定試験の「Java認定資格」か、サーティファイが提供するJavaプログラミング能力認定試験の「Javaプログラミング能力認定資格」の2つです。

Javaをきちんと理解していることを相手に伝えるためには、実務経験があるだけではなく資格もあった方が信用されます。

そのため、Javaに自信のある方は資格にも挑戦してみてください!

Javaの資格については次の記事で詳しく解説しているので、興味のある方は確認してみてください。

Javaの書き方は?

オブジェクト指向である

Javaはオブジェクト指向という方法で書きます。

オブジェクト指向とは、プログラムを機能を持ったオブジェクトに分け、そのオブジェクト同士を関係させて、組み立てていくというプログラミングの考え方のことです。

オブジェクト指向についてもっと知りたい方は次の記事をご覧ください。

クラスがある

オブジェクト指向には「クラス」という考え方があります。

クラスとはこれから作る『モノの定義』です。

例えば「これから作る『モノ』は何を覚えておくことが出来るか?」「これから作る『モノ』はどんなことをすることが出来るのか?」といった内容を決めていきます。

これらのデータと処理を持つものが「クラス」です。

クラスの持つデータをフィールド、処理をメソッドと呼びます。

また、クラスが持つフィールドとメソッドをクラスのメンバと呼びます。

クラスはそのままでは使用できないため、それをもとにオブジェクトという実際に使用できるデータを生成します。

これをインスタンス化といいます。

「インスタンス」とは、クラスから作られた実働する『モノ』のことです。

クラスはあくまで『設計図』でしかありませんので、クラスだけでは仕事をしてくれません。

クラスやインスタンスについては、次の記事で詳しく解説しています。

Javaのプログラムを実行するには?

Javaのプログラムを書いて実行するまでの流れを解説していきます。

コンパイルや実行に必要なJDKのインストールや環境変数の設定はこちらの記事を参考にしてください。

Javaでプログラムを書く

まずはJavaでプログラムを書きます。

Javaプログラムの拡張子は「.java」です。

以下は「Java」と文字列を出力するサンプルプログラムです。これをソースコードといいます。

Sample.java

書いたソースコードをコンパイルする

書いたソースコードをJVMが実行できる形式に変換します。

これをコンパイルといいます。

コンパイルするには、ターミナルでプログラムのある場所に移動し、以下のコマンドを実行します。

先ほど作成したSample.javaを、Windows付属のターミナルであるコマンドプロンプトを使用してコンパイルしてみます。

Sample.javaは「C:\samurai」に保存します。

terminal

コンパイルが完了すると、同じディレクトリにプログラムと同じ名前で、拡張子「.class」のファイルが作成されます。

これをクラスファイルといいます。

コンパイルする時には、拡張子「.java」をつけるのを忘れないようにしてください。

できあがったクラスファイルを実行する

最後にクラスファイルを実行します。ターミナルで以下のコマンドを実行します。

先ほど作成したSample.classを実行するには、以下のようになります。

terminal

ここでは拡張子がいりません。

実行すると文字列「Java」が出力されます。

基本構文を使ったプログラムを書いてみよう!

ここでは、Javaプログラムでよく使う構文を紹介していきます。

JDKとEclipseで開発環境を準備しよう!

これからプログラムを書いていくのに、「Eclipse」という統合開発環境(IDE)を使用すると、プログラムを書くときに補填してくれたり、コンパイルを自動的にしてくれたり、開発をスムーズに行うことができます。

開発環境を構築する方法は次の記事で、Windowsの場合とMacの場合でそれぞれ分けて解説しています。

間違えないように記事の内容を確認しながらインストールをしてください。


Javaで「Hello World!」を表示してみよう!

Javaで「Hello World!」を表示する方法を解説します。

次のプログラムではコンソールウィンドウに「Hello World!」と表示させています。

[実行結果]

このプログラムでは「System.out.println("Hello world!");」でコンソールウィンドウに文字を表示しています。

Javaのプログラムは、パッケージの中にクラスがあり、その中にメソッドが含まれるという構成になっています。

Javaの開発では、このような形でアプリケーションを作ります。

if文を使って条件によって処理を変えてみよう!

if文は、「もし◯◯の場合はXXする」といった条件によって処理を変える構文です。

if文については、次の記事で詳しく解説しています。

for文で同じ処理を繰り返してみよう!

for文は、繰り返し処理をする構文です。

for文を使うと、何度も同じ処理を書く必要がありません。

「int i = 0」は数値を入れる変数iを作成し、0を代入しています。

「i < 10」はiが10より小さい間、繰り返して行う処理を実行します。

「i++」は繰り返して行う処理が終わったら、iをひとつずつ増やします。

これらの流れで、iが0から9までの間の10回同じ処理が繰り返し実行されます。

for文については、次の記事で詳しく解説しています。

まとめ

いかがでしたでしょうか?

Java言語について特徴や使い道など、様々な角度から解説してきました。

大規模開発やAndroidアプリ開発を行うためのしっかりした言語ということがおわかり頂けたでしょうか。

この記事を読んでJavaに興味を持ったら、実際にコードを書いてみましょう!

Java言語の特徴などを抑えていただいた上で、プログラミングライフをより楽しんでいただければ幸いです。

Javaカリキュラム無料公開中!
この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java2

学習者インタビュー

人気記事セレクション

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題!最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
Python学習カリキュラム無料公開中
 1記事最大11,000円!テックライター募集


LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

井上 慎也

井上 慎也

侍エンジニア塾のインストラクター。フリーでWEB制作の受託や自身の事業の傍ら、侍ではWEBプログラミング方法の指導やプログラミング学習コミュニティの運用を行っている。
好きなショートカットキーは、command + w 。愛機はMac Book Pro。ブラウザのタブを大量に開きがち。