Javaとは?言語の特徴や用途などを専門用語抜きで網羅的に解説

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

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

Javaについて色々と調べる中で、

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

こういうお悩みを持って悶々としているあなたに向けて、「そもそもJavaとは何なのか」というところから「効率的な学習方法」までを丁寧に分かりやすく専門用語を抜いて解説していきます。

この記事で分かること

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

この記事の目次

Javaとは?

Javaとは、プログラミング言語の一つです。

世の中に200種類以上のプログラミング言語がある中で、Javaは昔から良く使われている言語で日本でも未だに人気が高い言語です。

その人気の理由として、Javaは基本的にどんな環境でも使える言語で、システム開発やWeb開発、アプリケーション開発など多岐にわたる用途で様々な開発に利用されているという理由があります。

また、様々なプログラミング言語の元となっているのはJavaであるという点でも他の言語と比較して優れていると言えますね。

Java言語の特徴

Javaとはどんな言語?

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

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

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

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

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

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

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

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

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

つまりそれは、翻訳者がいれば世界中どこでも旅行に行けてしまうのと同じです。MacでもWindowsでも、どんな環境でもJavaは動作できるわけです。

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

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

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

つまり、大きな木からいきなり机を作ろうとすると変な形の机ができますが、「台となる1枚の板」と「4本の机の足」を別で作ることで、「机の台」と「机の足」を組み立てて「机」を作るような考え方をオブジェクト指向と言い、効率的な開発には必須となる考え方となるわけです。

Javaの高い人気と需要

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

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

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

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

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

PythonやJavaScriptなどの登場で全体的に右肩下がりになっていますが、それでもJavaの人気は不動のものと言っていいでしょう。2000年代に入るとJavaが1位を独占しています。

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

引用:TIOBE INDEX

こちらをみると、2000年以降にはJavaずっと1位をキープしている状態で、2014年に1度だけC言語に1位を奪われましたが、その後また1位を獲得しています。

このように過去の人気も含めて、時代の激しい流れはあっても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の方がシェアされている結果となっており、それだけJavaで開発するAndroidの国内需要は高いと判断できますね。

また、世界的に見てもまだAndroidのシェアが多い傾向にあるので、Javaを学んでandroidアプリを開発するエンジニアとして仕事獲得することも需要的に十分アリです。

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

WEBアプリケーション

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

例えば、Twitterのような大規模なWEBサービスなどもJavaで開発することができます。TwitterはもともとRubyで開発されていましたが、その時はアクセスが集中すると処理をしきれず、クジラの画像のエラー画面が表示されていました。

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

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

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

ゲーム開発

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

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

ゲームってC#言語が主流って聞いたけど・・・

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

Javaのメリット

Javaを学ぶメリットとしては大まかに以下の3つがあります。

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

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

言語として高性能

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

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

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

加えて、Javaはどんな小さなプログラムを作るのにも、オブジェクト指向という考え方が必要になってきます。このオブジェクト指向は、現代のプログラミングにはなくてはならない考え方ですので、Javaを学ぶことでそのオブジェクト指向を身につけることができるでしょう。

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

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

WEB上での検索数を記録するTIOBE INDEXを見ると、2019年現在Javaは堂々のシェア1位となっています。それだけJavaプログラミングを行っている人が多いということを示しています。

引用:TIOBE INDEX

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

日本語での参考情報が多いことで、応用的な開発もやりやすい特徴があり、基本が抑えられていればどんどん調べて開発を進めることもできます。Q&AサイトでもJavaの質問数は多いので、そういったところから情報を集めることもできます。

仕事に直結させやすい

上でもみたように、Javaの人気やシェアは他の言語に比べて圧倒的に高いです。トレンドに左右されず、10年前から変わらない人気を保っています。加えて、下でも説明していきますが、活用できる幅が広いという特徴もあります。

求人案件数もかなり多くあるので、Javaを習得できていれば就職・転職する際に優位に働くでしょう。

Javaのデメリット

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

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

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

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

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

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

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

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

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

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

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

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

Javaを開発する流れは

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

基本的にこの4つになります。

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

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

Javaのプログラムを書いて実行するには、Javaをインストールする必要があります。

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

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

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

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

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

Sample.java

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

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

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

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

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

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

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

terminal

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

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

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

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

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

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

[実行結果]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

もっとJavaについて学びたいところですが、道筋の全体像が分からないと学習のしかたもわかりませんよね。

学習サイトで学ぶのもいいですが、基本的に何をどんな順序で学ぶべきなのかを知っておかないと実力はついてこないのです。そこで以下のロードマップを見ていきましょう。

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

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

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

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

などなどです。これらの基本的な文法や概念はこれからの開発の軸になります。

ここの理解がふわっとしていると、今後のキャリアにかなり響きます。こういった学習は、受験勉強と同じです。基本を固めてその応用で開発をやることは頭に入れておきましょう。

できることなら資格を取って理解度をテストしておくこともおすすめです。この時点での資格のおすすめは「Oracle Certified Java Programmer, Silver SE 8 認定資格」です。

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

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

Javaのライブラリを効率的に管理できて、ビルドが簡単にできるプロジェクト管理ツールについて学ぶ必要があります。

ビルドについてはこちらの記事でサクッと理解してみましょう。

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

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

ここまでで、基本文法を理解してコードをある程度書いていると思います。この基礎的な段階で、癖付く前に綺麗なコードを書くためにGoogleのJavaコーディング規約を元に美しく正しいコードがかけるように修正していきましょう。

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

と思っているかと思うので、日本語で翻訳されたコーディング規約をご紹介しますね、こちらです。

このコーディング規約をもとに今まで書いてきたコードに対して見直しを行いましょう。

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

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

先ほど、コーディング規約を見て正しいコードについて学んでもらいましたが、それでも間違ったコードを書いてしまうことは避けられません。

どんなにすごいプログラマーでもエラーを出してしまうことからは逃れられない事実を知っておきましょう。

そんな時にテストコードが必要です。テストコードでは、不具合を起こしてしまわないようにコードがきちんと動くかテストすることができます。

この段階でテストコードを身に付けて、さらに美しいコーディングができるように守備力を固めましょう。

参考のスライドについてはこちらを見てみましょう。

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

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

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

そこでWeb制作を一つの成果物として作る必要があり、そこではデータを管理するデータベースについて学ぶ必要があります。ここでは、データベースのデータのやり取りにSQLが必要です。

SQLについては以下の記事を参考にしてみてください。

【SQL入門】SQLとは?基礎を学んでデータベースを操作しよう!
更新日 : 2019年5月3日

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

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

次に効率的にWebサイトを作成できるJavaのフレームワークについて学んでいきましょう。

効率的かつ速度感をもってWeb制作するためには、Javaのフレームワークが不可欠です。

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

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

⑦機能を実装してみる

ブログのようなWebサイトを作ったら、ログイン機能や作成、削除などのWebサイトの基本的な機能実装を行うことで簡単な制作物を作成は終わりです。

また、いいね機能やお気に入り機能など少し応用的な機能もつけられるとさらにGoodです!

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

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

Javaのプログラミング学習を基礎から応用までこちらの記事にまとめました。Javaで開発をするためには、まず学習をして開発するためのスキル・知識を得ることが必要不可欠です。

しかし、学習のやり方を知らないと途中でつまずいてしまい、思うように学習が進みません。

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

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

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

まとめ

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

Java言語について特徴や使い道など、様々な角度から解説してきました。大規模開発やAndroidアプリ開発を行うためのしっかりした言語ということがおわかり頂けたでしょうか。

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

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

Javaカリキュラム無料公開中!

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

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

Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

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

もし、あなたが、

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

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

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

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

cta_bannar-java2
LINEで送る
Pocket

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります

おすすめコンテンツ

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

プログラミング学習の効率を劇的に上げる学習メソッドを解説