1. ホーム >
  2. ブログ ~人材育成最前線~ >
  3. 【今求められる人材】これだけは知っていてほしい「Java言語の新常識」!?~Webアプリ担当講師が語るJava8の新技術とその活用場面・メリットとは~

【今求められる人材】これだけは知っていてほしい「Java言語の新常識」!?~Webアプリ担当講師が語るJava8の新技術とその活用場面・メリットとは~

[2015年1月22日]

みなさん、こんにちは!
富士通ラーニングメディアのWebアプリケーション開発などのコースを担当している並木です。

さて、みなさんは、開発言語として大きなシェアを誇るJava言語が2014年4月に大幅にアップデートされたことはご存知でしょうか?

今回は、Java言語の開発者の方はもちろん、開発者ではない方でも、これだけは知っていてほしい!という【Java言語の新常識】を3点に絞ってご紹介します。

後輩 松井との会話の中からご紹介していきます。
みなさんも松井と一緒に新常識を身に付けてくださいね。

 

講師画像

松井正徳(まつい まさのり)

アプリケーション開発担当講師。
当社期待のホープ。好奇心の塊。
黒い肌は、学生時代からのヨットで培った天然モノ。
現在も夏の週末は海に繰り出している。

   

講師画像

並木さやか(なみき さやか)

アプリケーション開発担当講師。
松井が新人の頃は教育係を担当。
今でも好奇心旺盛でいろいろなことに挑戦する松井を
心配して見守っている。

  

 <Java言語の新常識とは>

イメージ図

 

■新常識1:コードスタイルが変わります!
                   Javaのソースコードに【矢印】が登場します!

イメージ図 松井:
 矢印...?Javaのコードに矢印なんて想像できないな...

 

 

 

並木:イメージ図
ソース内では「->」と表現します。

例えばこんな感じ。

 

イメージ図

この記述法は「ラムダ式」と言われる書き方で、
JavaSE8で新たに導入された技術のひとつなんです。

 

イメージ図松井:
なんだかJavaのコードに見えないですね...!
オブジェクト指向に慣れている僕には読みづらく感じるし、
こんな書き方流行らないんじゃないかな...

 

 

並木:イメージ図
この「ラムダ式」は今話題の"関数型プログラミング"の考え方を取り入れていて、利用場面やメリットの多さから非常に注目されているんですよ!

関数型プログラムとは何か、どんな利用場面やメリットがあるかは「新常識2」以降で紹介しますね。

 

イメージ図 松井:
 ほ~ ラムダ式は今後普及していきそうだと感じました。
 まずはラムダ式のスタイルに慣れておく必要がありますね。

 

 ■新常識2:"関数型プログラミング"の考え方を取り入れています!

並木:イメージ図
「新常識1」で紹介した通り、JavaSE8の新機能「ラムダ式」は
「関数型プログラミング」の考え方を取り入れた記述法になっています。

 

イメージ図松井:
関数型プログラミング、最近よく話題になっていますよね。
関数型プログラミングとは何なのでしょうか?
オブジェクト指向プログラミングとは違うものなのでしょうか?

 

 

並木:イメージ図
関数型プログラミングは"関数(※1)"を使用するプログラミング手法であり、宣言型プログラミングの一種と言われています。
それに対してオブジェクト指向は、命令型プログラミングに近いですね。

この特徴は実際のプログラムコードを見ないと
理解しづらい内容にもなるので、詳しくは「新常識3」以降で
確認していきましょう。

(※1)この"関数"は、C言語等で言われる"関数"とは異なる特徴を持ちます。
本コラム内で詳細な説明は割愛しますが、より深く学習されたい方向けに
本コラム「最後に」でお勧めの参考書籍を紹介します。

 

■新常識3:for文を使用せず、より直感的にループ処理を記述できます!

並木:イメージ図
プログラム内でループ(繰り返し)処理を行う場面は多いですよね。

例えば・・・

 ・従業員リストのデータ全件から、営業部の従業員だけを抽出したい
 ・営業部の従業員を全てソートして出力したい

このような処理でも、先ほど紹介したJavaSE8の新機能「ラムダ式」を効果的に利用できるんです。
ここでは更にJavaSE8から追加されたAPI「StreamAPI」も利用します。

イメージ図

 

イメージ図松井:
ラムダ式とStreamAPIを使ったコードは簡潔ですね!
でも、簡潔すぎて、何の処理を行っているのか理解しづらい気がします。

 

 

並木:イメージ図
慣れるまでは抵抗があるかもしれませんが、
ラムダ式とStreamAPIを使用したコードの方が
「何がしたいのか」理解しやすくなっているんですよ!

1行ずつ、素直に読めばいいだけです。

イメージ図

 

イメージ図松井:
確かに、何がしたいのか理解しやすいですね!
ラムダ式とStreamAPIを利用することで直感的なコードが
記述できるんですね!

 

 

並木:イメージ図
「新常識2」で、関数型プログラミングについて下記のように説明しました。

 > 関数型プログラミングは"関数(※1)"を使用するプログラミング手法であり、
 > 宣言型プログラミングの一種と言われています。
 > それに対してオブジェクト指向は、命令型プログラミングに近いですね。

上記のコードを見ると、
従来の処理は"命令的"、ラムダ式を使用した処理は"宣言的"
になっていることが確認できるのではないでしょうか。

従来のコードは「コンピュータがどのような手順で処理を進めるのか」を、
命令するコードとなっています。
一方、ラムダ式を使用したコードでは
「プログラムで何をしたいのか」のみをコードで表現しています。

イメージ図松井:
プログラムの考え方自体が異なるんですね。
ラムダ式を使用したループ処理は今度利用する機会が多そうなので、
この書き方に慣れていきたいと思います!

 

 

イメージ図

 

<最後に>

今回のブログでは、JavaSE8で導入された技術と従来のJavaとの違いや利用場面・メリットをお話してきましたが、利用場面やメリットはここでは語りきれない点もありますので、最後に今後の学習の助けとなるお勧めの書籍をご紹介します。

 ・Javaによる関数型プログラミング――Java 8ラムダ式とStream

出版社: オライリージャパン
Venkat Subramaniam (著)、株式会社プログラミングシステム社 (翻訳)
ISBN-10: 4873117046
ISBN-13: 978-4873117041

 ・Java8ではじめる「ラムダ式」

出版社: 工学社 (2014/07)
清水 美樹 (編集)
ISBN-10: 4777518418
ISBN-13: 978-4777518418

 ・Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング

出版社: インプレス (2014/9/22)
Cay S. Horstmann (著)、柴田 芳樹 (翻訳)
言語: 日本語
ISBN-10: 4844336673
ISBN-13: 978-4844336679

その他にも、私がぜひお伝えしたいJava8のメリットや活用場面も 多々ありますので、
直接聴きたいという方は下記講習会のご受講をご検討ください。

 
 <コース紹介>

☆コラムでご紹介したJava SE 8で新たに登場した関数型プログラミング記法
「ラムダ式」およびStreamAPIについて学ぶコースです。

JavaSE8新機能~関数型プログラミングとStreamAPI~ (UZL72L)

開催予定:3月23日、8月7日、9月30日です。

☆そのほかのWebアプリケーション開発関連コースもご参考にしてください。
「Webアプリケーション開発技術(Java)」関連コースマップ


みなさまとこれからのJavaについていろいろとお話しできることを
楽しみにしています!

 

 

月別アーカイブ