https://www.sejuku.net/blog/wp-content/themes/voice_child/images/samurai_logo.png 侍エンジニア塾が運営するプログラミング入門者向け学習情報サイト

Javaとは?言語の特徴やメリット、用途を初心者向けに解説

井上 慎也
書いた人 井上 慎也


侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

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

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

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

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

そこでこの記事では

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

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

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

Javaとは?

shutterstock_362210810

言語の概要

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

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

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

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

「Java」と「JavaScript」の違いについてはこちらの記事で詳しく解説しています!

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」を見ると、2018年現在Javaは堂々のシェア1位となっています。

java01

こちらは2002年以降の各プログラミング言語の人気度をグラフで示しています。

PythonやJavaScriptなどの登場で全体的に右肩下がりになっていますが、それでもJavaの人気は不動のものと言っていいでしょう。

java02

こちらは1988年以降のランキングデータです。

2000年代に入るJavaがずっと1位を独占しています。

java03
TIOBE INDEX

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

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

Javaのデメリットは?

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

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

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

オブジェクト指向、設計に慣れにくい

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

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

ただ、オブジェクト指向で開発できれば、後から拡張しやすいのも事実です。

そして、後から拡張しやすいようにするには将来を見据えた設計が必要となります。

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

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

したがって、学習から習得するまでに「大幅な時間がかかる」ことにもなります。

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

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

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

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

業務システム

shutterstock_358633469

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

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

業務システムでは多数の情報を管理するためにデータベースを使用します。

業務システムで使われているデータベースの「Oracle Database」ではJavaを使って開発することができます。

「Oracle Database」の詳細に興味のある方はこちらの記事を確認してください。

参考記事:Oracle Database

Androidアプリ開発

shutterstock_362210810

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

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

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

JavaでAndroidアプリを開発をやってみたい方は、こちらの記事でおすすめの入門サイトを解説しているのでぜひ確認してみてください!

WEBアプリケーション

shutterstock_294503453

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

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

TwitterはもともとRubyで開発されていましたが、その時はアクセスが集中すると処理をしきれず、クジラの画像のエラー画面が表示されていました。

しかし、開発に使用する言語をRubyからJavaに変更してからは多数のアクセスを処理できるようになりエラー画面は出なくなりました。

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

TwitterがJavaにシフトして成功した話はこちらの記事を参考にしてください。

参考記事:Ruby から Java へのシフトで大統領選を乗り切った Twitter

ゲーム開発

shutterstock_587665910

Javaではゲーム開発をすることもできます。

人気のクラフトゲーム「Minecraft」もJavaで開発されています。

参考記事:Minecraft

Javaのフレームワークは?

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

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

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

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

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

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

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

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の勉強方法と資格は?

shutterstock_362210810

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

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

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

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

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

Javaの資格に挑戦しよう

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

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

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

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

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」が出力されます。

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

先ほどはコマンドプロンプトでJavaを実行する方法についてお伝えしました。

これからJavaのプログラムを書いて実行するのに、「Eclipse」という便利な統合開発環境(IDE)があります。

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

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

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

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

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

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をアップデートするには?

Untitled-design2

Javaに危険な欠陥が見つかると、欠陥を修正したアップデートが公開されます。

アップデートが公開される理由は、過去のJavaで見つかった危険な欠陥を修正するためですから、欠陥を放置せざるを得ない特別な理由がない限りは、必ずアップデートしてください。

アップデートについては、こちらで詳しく解説していますので、ぜひ参考にしてください。

Javaのプログラミングを本格的に学ぶなら

Javaのプログラミング学習を基礎から応用までこちらの記事にまとめました。

この記事の通りに学習を進めていけば、つまずくことなくJavaを習得することができるでしょう。

それぞれの記事にサンプルコードがあるので確認しながら学習できます。

まとめ

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

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

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

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

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

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

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


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

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


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

もし、あなたが、

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

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

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

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

cta_bannar-java1

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

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

最新情報をお届けします

書いた人

井上 慎也

井上 慎也

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