スライドショースライドショースライドショー

【初心者向け】Javaとは?言語の特徴や用途を専門用語を使わず説明

こんにちは、現役エンジニアとして丸10年になる侍エンジニア塾ブログ編集部の山下です。

近年、プログラミングの注目度は一気に高まり、プログラミングを学習してエンジニアになる方が急増しています。Javaについて色々と調べる中で、

Javaってそもそも何なんだろう・・・
Javaで何ができるようになるんだろう

と疑問に思う方もいるのではないでしょうか。

この記事では、そもそもJavaとは何なのかから始まり、以下の4つについて初心者にもわかりやすく丁寧に、専門用語を使わずに解説していきます。

  • Javaの特徴・用途
  • Javaで作れるもの・就ける仕事
  • Javaの効率的な学習方法
  • Javaで簡単にプログラムを動かす方法

この記事の目次

Javaとは?

Javaとは、プログラミング言語の一つ。現在、200種類以上のプログラミング言語がある中で、昔から良く使われており、Googleが開発に用いている「Google三大言語(Java、C++、Python)」の一つでもあります。応用力がある言語として昔から根強い人気を誇り、日本でも昔から変わらず人気が高い言語です。

Javaの人気が根強いのは、基本的にどんな環境でも使える言語だというのが大きいでしょう。システム開発、Web開発、アプリケーション開発と、使える場面が多岐にわたり、さまざまな開発に利用されているからです。特に、大企業での大規模システム開発やAndroidアプリの開発を得意としています。

また、Javaがさまざまなプログラミング言語の元になっているのも、ほかの言語と比較して優れている点です。

ちなみに、Javaによく似た名前のプログラミング言語に、JavaScriptがあります。実はこの2つ、名前こそよく似ていますが、全く別のプログラミング言語。Javaは業務システムやWebサービス、Android向けアプリの開発に使われますが、JavaScriptはWebブラウザで上で色を変えたり、ポップアップ表示をさせるというよな、動きがあるWebページの開発に使われることが多い言語です。

JavaとJavaScriptって何が違うの?わかりやすく4つの違いで徹底分析
更新日 : 2019年11月7日

Java言語の特徴

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

Javaの最大の特徴は「JVM(Java Virtual Machine:Java仮想マシン)」で動いていることです。Java仮想マシンとはその名前の通り、Javaのために擬似的に作り出されたマシンのこと。このマシン上で、Javaは動作します。

Javaは、Java仮想マシンが動作するコンピュータならどんなコンピュータ上でも利用できます。それはまるで、Java仮想マシンは「コンピュータ本体との通訳者のようなもの」で、通訳さえいれば世界中どこへでも自由に旅に行けるのと同じです。OSがMacでもWindowsでもLinuxでもOK。どんな環境でもJavaは動作するのです。

Javaの開発はオブジェクト指向で作られている

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

オブジェクト指向とは?

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

大きな木からいきなり机を作ろうとすると変なカタチの机ができる可能性がありますが、最初から

  • 天板となる一枚の板
  • 机の脚4本

を別々に用意すれば、天板と脚を組み合わせるだけで、ごく普通の机を作ることができます。このようにモノをモノを組み立てて1つのものを作る考え方をオブジェクト指向と言います。開発を効率的に進めるために必須となる考え方ですね。

Javaの高い人気と需要

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

引用元:TIOBE Index https://www.tiobe.com/tiobe-index/

また、次に各プログラミング言語の人気度をグラフで示したものを見ていきましょう。

引用元:TIOBE Index https://www.tiobe.com/tiobe-index/

こちらは2002年以降の各プログラミング言語の人気度をグラフで示しています。黒い折れ線グラフが、Javaを表しています。PythonやJavaScriptなどの登場でわずかに右肩下がりになっていますが、それでもJavaの人気は不動のものと言っていいでしょう。2000年代に入るとJavaがほぼ1位になっています。

また、もっと遡って1988年代からの言語の人気を示した表を次に見ていきましょう。

引用:TIOBE INDEX http://www.tiobe.com/tiobe_index

こちらを見ると、Javaは常にトップ3にランクインしています。時代の激しい流れはあっても、Javaの人気は衰えることを知りません。

Javaで開発できるもの

業務システム開発

Javaで制作できるアプリの代表的なものに「業務システム」があります。オンラインで動作するもので、例えば運送会社の配送システムや、金融の取引システムなどもJavaで作られています。業務システムでは多数の情報を管理するためにデータベースを使用します。

業務システムで使われているデータベースの「Oracle Database」ではJavaを使って開発することができます。「Oracle Database」の詳細に興味のある方はこちらの記事を確認してください。

Androidアプリ開発

Googleが提供するAndroid自体がJavaで動いており、Androidアプリを作る時にもJavaを使います。

今はiPhoneのアプリが主流だから時代遅れでしょ

そう思う方もいるかもしれませんが、2019年3月時点の日本のスマホのシェア率を確認してみると、

引用:スマートフォン・シェアランキング(TOP10) https://webrage.jp/techblog/sp_share/

Androidが4割強を占め、Javaで開発するAndroidの需要はまだまだ高いと判断できます。世界的にはAndroidのシェアが高い傾向にあるので、Androidアプリを開発するエンジニアの需要は十分にあります。

【入門ガイド】初心者がAndroidアプリを開発するまでの全手順を公開
更新日 : 2019年12月5日

WEBアプリケーション

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

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

Javaは開発に時間がかかる言語なので、小規模なWEBアプリ開発には向いていませんが、Twitterのような大規模アプリの開発に最適なのです。TwitterがJavaにシフトして成功した話はこちらの記事を参考にしてください。

Webサイト

Webサイトを介したさまざまなWebサービスは、現代の暮らしになくてはならない存在です。

Webサイトはさまざまな言語を組み合わせて構築されており、ユーザーが目にする画面(フロントサイド)に表示されるのはHTMLやCSSといった言語が使われていますが、処理を行うサーバー側(バックエンド)のプログラムにはPHPやRuby、Javaが使われていることが多くあります。身近なところでは、楽天やebayといったECサイトで、Javaが採用されていますね。

ゲーム開発

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

Minecraftとは?
Minecraftとは、ブロックを積み重ねて建物や町を自由に作るゲームです。洞窟探検をしモンスターを倒す、サバイバルを楽しむこともできます。遊び方はユーザー次第。まさに「自由に遊べるゲーム」です。/ 詳細はこちら

ゲーム開発の言語はC#が主流と聞いたけれど・・・

ゲーム開発で使われる言語は確かにC#が主流ですが、Javaでもゲーム開発はできます。クオリティも追求できる優秀なプログラミング言語として使われています。

組み込みシステム

Javaの開発が始まったのは1991年のこと。開発のきっかけは、実は家電製品でした。当時はC++を使い開発されることが多かった家電製品やカー用品でしたが、家電製品の進化に合わせてプログラムを書き替えねばならず、困難を極めていたのです。

1996年、初めてJava1.0が発表され、以来、多くの家電製品に組み込まれるシステムにJavaが使われるようになりました。ブルーレイディスクプレーヤーやカーナビゲーションシステム、洗濯機や冷蔵庫、テレビなど多くの家電製品でJavaが採用されています。

身の回りのあらゆるものがインターネットの繋がるIoT化も、Javaが支えていると言っても過言ではありません。

Javaのメリット

Javaを学ぶメリットは、大まかに3つあります。

  • 言語として高性能
  • 人気が高く日本語の参考記事や書籍などが多い
  • 仕事に直結しやすい

これらを、それぞれ詳しく見ていきましょう。

言語として高性能

Javaは人気の言語であるRubyやPHPなどのWEB系プログラミング言語に比べると、少し学習難易度が高いのですが、その分言語として高機能な性能を持ちあわせています。例を挙げると以下になります。

  • プラットフォームに依存しない
  • 開発効率と保守性が高い
  • ライブラリが充実している

Javaは、JVM(Java Virtual Machine:Java仮想マシン)が入っているパソコンであれば、OSに依存せず、ほぼ同じコードで動かせます。また、ライブラリが豊富なので、「これがしたい」と思いついたことに複雑な処理が必要な場合でも、すでに便利なライブラリがあったりします。

どんなに小さなプログラムを作る時でも、Javaを使う時はオブジェクト指向という考え方が必要です。オブジェクト指向は、現代のプログラミングでは必要不可欠な考え方。Javaを学べば自ずとオブジェクト指向を身につけられるでしょう。

オブジェクト指向とは何か?わかりやすい例で説明してみた。
更新日 : 2019年9月11日

人気が高く日本語の参考記事や書籍などが多い

WEB上での検索数を記録するTIOBE Indexを見ると、2020年6月現在、Javaはシェア2位です。それだけJavaを使うプログラマーが多いということを示しています。

引用:TIOBE INDEX http://www.tiobe.com/tiobe_index

Javaは多くの人が使っていて人気が高い言語だからこそ、プログラミング学習をする際に参考に見るサイトなどが多いということも表しています。簡単なエラーなら、日本語で検索すればだいたい解決できます。

日本語での参考情報が多いので、応用的な開発も進めやすいという特徴も。Javaの基本を押さえていれば、ネットを使って自分で調べて、開発を先へと進めていけます。Q&Aサイトを見ても、Javaをキーワードにした質問の数はとても多く、そこから情報を集められるのは大きなメリットの1つです。

求人数が多く仕事に直結させやすい

ここまで説明してきたように、Javaは、人気やシェアが他の言語に比べて圧倒的に高い言語。トレンドに左右されず、10年以上前から人気が高い言語です。さらに、活用できる幅が広いというのも大きなメリットです。

では実際にどのくらい求人数があるのか、確認してみましょう。大手求人サイト「doda」でJavaをキーワードに検索してみると…

引用元:Indeed https://jp.indeed.com

2020年6月9日現在で4,255件もの求人がヒットしました。ほかの言語では、C言語660件、PHP1.989件、Python1,333件なので、数あるプログラミング言語の中でも、Javaの求人数はトップクラスと言えます。Javaを習得できていれば、就職・転職する際に優位に立てるでしょう。

Javaのデメリット

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

Javaの最大の特徴であるJVM(Java Virtual Machine:Java仮想マシン)ですが、JVMが入っていないパソコンでは、当然ですがJavaは動きません。

また、炊飯器や冷蔵庫などの電子機器に使われる「マイコン」と呼ばれるシステムにはJavaのプログラムは組めません。

マイコンとは?
電気機器を制御するための電子部品。炊飯器や冷蔵庫、洗濯機といった電気機器に組み込まれています。/ 詳細はこちら

Javaのオブジェクト指向・設計に手間がかかる

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

オブジェクト指向で開発するJava言語は、オブジェクトを作成する必要があります。そのため、簡単な機能を作るだけなら、かえって手間がかかってしまいます。中途半端な技術で下手な設計をすると、根本から作り直すような状況に陥る可能性も。ネットワークやハードウェア系の知識がないと「仕事として成り立たない」こともあります。

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

JavaとC言語、プログラミング初心者には難易度が高い7つの理由
更新日 : 2020年4月29日

Javaの効率的な学習ロードマップ

これからJavaについて学ぶのに、道筋の全体像が分からないと学習の仕方がわかりませんよね。学習サイトで学ぶのもいいですが、基本的に何をどんな順序で学ぶべきなのかを知っておかないと実力はついてこないもの。

そこで、次のようなロードマップで進めていくことをオススメします。

【仕事獲得に必要な最低限のスキルセットを整えるロードマップ】

①基本文法とIDEについて学ぶ

Javaには覚えるべき基本的にな文法や概念があります。例えば

  • データ型
  • オブジェクト指向
  • プロモーフィズム
  • 継承
  • 配列
  • 例外
  • カプセル化
  • インターフェイス
  • ...etc

などなどです。これらの基本的な文法や概念は、Javaを習得後、実際の開発の軸になります。ここの理解がふわっとしていると、今後のキャリアにかなり響くことでしょう。受験勉強と同じように、基本をしっかり固めて、その応用で開発をやるということを頭に入れておきましょう。

資格を取って、自分の理解度がどの程度か知っておくのもオススメです。現時点でのおすすめの資格は「Oracle Certified Java Programmer, Silver SE 8 認定資格」です。(後ほど細かく触れます)。

またこの段階で、IDE(統合開発環境)についても使えるようにしておきましょう。

②プロジェクト管理ツールについて学ぶ

Javaのライブラリを効率的に管理できて、ビルド(最終的な実行ファイルを作成すること)が簡単にできるプロジェクト管理ツールについて学ぶ必要があります。ビルドについてはこちらの記事でサクッと理解してみましょう。

編集部のおすすめプロジェクト管理ツールはGradleなので、わかりやすい解説はこちらをチェックしてみてください。

③正しく美しいコーディングについて学ぶ

基本文法を理解してコードをある程度書けるようになったら、独自のくせがつく前に、美しいコードを書けるようにしたいもの。GoogleのJavaコーディング規約を元に美しく正しいコードがかけるように修正していきましょう。

いや、これ英語で分からないよ・・・もっとわかりやすいものないの?

という方はこちらをチェックしてください。Google非公式ながら、日本語に翻訳されたコーディング規約を読むことができます。このコーディング規約をもとに、今まで書いてきたコードを見直しましょう!

自分のコードの見直しが終わったら、Github上に上がっているソースコードを見て自分のモノにしつつ、コーディング規約や他のコードと照らし合わせるのがおすすめ。美しいコードについて学びながら、正しい知識が定着します。

④テストコードについて学ぶ

先ほど、コーディング規約を見て正しいコードについて学んでもらいましたが、それでも間違ったコードを書いてしまうことは避けられません。どんなにすごいプログラマーでもエラーを出してしまうことからは逃れられないのです。

エラーが出てしまった時にこそ、テストコードが必要です。テストコードでは、不具合を起こしてしまわないようにコードがきちんと動くかテストできるからです。始めの段階でテストコードを身に付けて、さらに美しいコーディングができるように守備力を固めましょう。

参考になるスライドをご紹介します。ぜひこちらをチェックしてみてください。

⑤データベースについて学ぶ(SQLについて)

Javaは、「これを作りました!」という成果物を示しにくい傾向があります。なぜなら、システム関連のコーディングなどは会社で行うことが多く、1人で完結するようなプログラムを作り上げる機会はそうあるものではないからです。

とはいえ、評価してもらえるような成果物を作り、それを作る過程でどのように学習したのかが、その先の仕事獲得の際、とても重要です。

そのために一つの成果物としてWeb制作に取り組む中で、データを管理するデータベースについて学ぶ必要があります。データベースのデータのやり取りの際には、SQLが必要です。SQLについては以下の記事を参考にしてみてください。

SQLとは何か?今、学ぶべきメリットと学習方法を徹底解説!
更新日 : 2020年6月15日

また、SQLを学習する際には学習サイト「ドットインストール」を活用しましょう。

⑥フレームワークについて学ぶ

次に効率的にWebサイトを作成できるJavaのフレームワークについて学んでいきましょう。効率的かつ速度感をもってWeb制作するためには、Javaのフレームワークが不可欠です。

以下の記事を参考にJavaのフレームワークを選んで集中的に学習していきましょう。

【2019年最新】Javaのおすすめフレームワーク5選を徹底比較
更新日 : 2019年9月11日

⑦機能を実装してみる

ブログのようなWebサイトを作ったら、ログイン機能や作成、削除などのWebサイトの基本的な機能実装を行いましょう。これで、簡単なWeb制作は終わりです。さらに、いいね機能やお気に入り機能といった少し応用が効いた機能もつけるとさらにGoodです!

できたWebサイトをGithub上に公開すれば、ポートフォリオとして使えます

Javaで基本プログラムを実行してみよう

Javaを開発する流れは

  1. Javaのインストール
  2. Javaのプログラムを書く
  3. Javaで書いたソースコードをコンパイルする
  4. Javaで出来上がったクラスファイルを実行する

基本的にこの4つになります。順を追って、Javaのプログラムを書いて実行するまでの流れを解説していきます。

①Javaのインストールをする

Javaのプログラムを書いて実行するには、Javaをインストールする必要があります。Javaのコンパイルや実行に必要なJDKのインストールや環境変数の設定は、こちらの記事を参考にしてください。

Javaインストールで初心者がつまずかないための完全攻略ガイド
更新日 : 2019年6月13日

②Javaで実際にプログラムを書く

まずはJavaでプログラムを書きます。Javaプログラムの拡張子は「.java」です。以下は「Hello world!」と文字列を出力するサンプルプログラムです。これをソースコードといいます。

Sample.java

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

※ソースコードをコピーすることができます

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

書いたソースコードをJVMが実行できる形式に変換します。これをコンパイルといいます。コンパイルするには、ターミナルでプログラムのある場所に移動し、以下のコマンドを実行します。

javac プログラムファイル名

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

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

terminal

コンパイルが完了すると、同じディレクトリにプログラムと同じ名前で、拡張子「.class」のファイルが作成されます。これをクラスファイルといいます。コンパイルする時には、拡張子「.java」をつけるのを忘れないようにしてください。

④Javaで出来上がったクラスファイルを実行する

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

java クラス名

先ほど作成したSample.classを実行するには、以下の順に操作します。

>cd C:¥samurai
>java Sample.java
>java Sample</strong>
[実行結果]
Hello world!

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

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

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

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

Javaでif文を使った条件分岐

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

if (条件) {
	// 条件にあてはまる場合に行う処理
}

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

【Java入門】if文で条件分岐(else、AND/OR、否定、省略、三項演算子)
更新日 : 2019年4月22日

Javaのfor文を使った繰り返し処理

for文は、繰り返し処理をする構文です。for文を使うと、何度も同じ処理を書く必要がありません。

for(int i = 0; i < 10; i++) {
 // 繰り返して行う処理
}

「int i = 0」は数値を入れる変数iを作成し、0を代入しています。「i < 10」はiが10より小さい間、繰り返して行う処理を実行します。「i++」は繰り返して行う処理が終わったら、iをひとつずつ増やします。これらの流れで、iが0から9までの間の10回同じ処理が繰り返し実行されます

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

Javaにはどんな資格がある?

先ほど軽く触れましたが、Javaを勉強している人、もしくはこれから勉強しようと思っている人の中には、資格の取得を考えている人もいるのではないでしょうか。

Javaの資格は主に下記の二つです。

  • Oracle認定Javaプログラマ
  • Javaプログラミング能力認定

オススメは、Oracle認定Javaプログラマです。Javaの開発元による公式ベンダー資格なので世界中で通用しますし、就職や転職の際にも有効な資格と言えるからです。難易度が「Bronze・Silver・Gold」と三段階に分かれているので、まずは「Silver」の取得を目指すといいでしょう。

Javaの資格に関してより詳しく知りたい人は、以下の記事を参考にしてください。

【Java資格一覧】各試験の難易度とおすすめ資格、勉強方法まで完全網羅
更新日 : 2020年6月17日

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

Javaで開発をするためには、まず学習をして開発するためのスキル・知識を得ることが必要不可欠です。しかし、学習の進め方を知らないと、途中でつまずいてしまい、思うように学習が進めることができません。

そこで、学習がスムーズにできるような記事を用意しました。

【Javaプログラミング入門】初心者が独学で学習するための無料講座
更新日 : 2019年11月19日
Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

この記事の通りに学習を進めていけば、つまずくことなくJavaを習得できるでしょう。それぞれの記事に「サンプルコード」があるので、確認しながら学習するといいでしょう。

Javaを習得して仕事獲得を目指している人は

この記事では「Javaとは?」について、基本的な部分から網羅的に解説してきましたが、中にはJavaを学んださらにその先に転職や就職、フリーランスとして仕事を獲得するところまで考えている人もいるのではないでしょうか?

Javaは独学でも学べますが、エラーにつまずく事が多く、挫折率は8割ほどと言われています。また、現役エンジニアのようなプロのアドバイス無しで転職や仕事獲得に成功するのも、非常に難易度が高いと言われています。

そこで、Javaを学び、その先の仕事獲得まで考えている方は、まずは弊社「侍エンジニア塾」の無料体験レッスンを利用してみては如何でしょうか?弊社の無料体験レッスンでは、プログラミング学習における悩みや不安を解消できるだけでなく、あなたの目標をヒアリングし、その目標を最短で達成するための学習プランを提供しています。

また、コンサルタントから仕事獲得のコツを伝授してもらうこともできます。入会する、しないに関わらず、効率的なプログラミング学習を行えるでしょう。

興味がある人は、下記のカレンダーからお気軽にご予約ください。弊社随一のコンサルタントがお待ちしております。無料体験はオンラインでの利用も可能となっております。

まとめ

今回はJavaについて、特徴や使い道など、様々な角度から解説してきました。Javaは、大規模開発やAndroidアプリ開発を行うためのしっかりした言語ということが、理解してもらえたと思います。

この記事を読んでJavaに興味を持ったら、実際にコードを書いてみましょう!Java言語の特徴などを抑えていただいた上で、プログラミングライフをより楽しんでいただければ幸いです。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通して、プログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

cta_under_btn

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習やキャリアのお悩み、お気軽にご相談ください。