21
Java7 Java8 が僕らの目に 優しくなってきている Nkzn 2014.3.15 長岡開発者勉強会 #36

NDS36 Java7&Java8

Embed Size (px)

DESCRIPTION

http://nagaoka.techtalk.jp/no36

Citation preview

Page 1: NDS36 Java7&Java8

Java7やJava8が僕らの目に優しくなってきているNkzn 2014.3.15 長岡開発者勉強会 #36

Page 2: NDS36 Java7&Java8

自己紹介名前:中川幸哉 a.k.a なかざん(@Nkzn)

先日27歳になりました(あらさー!)

アグリノート社ウォーターセル社の人

Androidアプリエンジニアです

最近はコーディングよりマネージャー業務とかアーキテクト業務が多めです

Javaつらい勢

Page 3: NDS36 Java7&Java8

Javaの話Write Once, Run Anywhere

Page 4: NDS36 Java7&Java8
Page 5: NDS36 Java7&Java8

Java Language1995年登場

2010年1月、開発元のSunがOracleに買収された

最新バージョンはJava SE 7u51

3日後くらいにJava8がリリースされるらしい

強い静的型付け

C++などからの派生言語

Duke

Page 6: NDS36 Java7&Java8

Java Overview

Hardware

Operating System (Windows, OS X, Linux, others)

Java Virtual Machine(JVM)

Java Code (.java)

Byte Code (.class)

compiler (javac)

Type Checking

Page 7: NDS36 Java7&Java8

Javaと一言に言っても言語としてのJava(今回はこれ)

動作環境としてのJava

Java Virtual Machine (JVM)

Java Runtime Environment (JRE)

JavaScriptの言い間違えとしてのJava(やめろ)

Page 8: NDS36 Java7&Java8

見た目の特徴名前空間(package)

クラスベース

前置の型宣言

セミコロン必須

型付きのコンテナ(Generics)

ドットによるフィールドやメソッドの呼び出し

自身のインスタンスは「this」

Page 9: NDS36 Java7&Java8

テキスト

Java7でGenericsが賢くなったお話ダイヤモンドは砕けない

Page 10: NDS36 Java7&Java8

Java6まで

Page 11: NDS36 Java7&Java8

Java7から

Page 12: NDS36 Java7&Java8

型推論代入式の左辺で型が確定しているジェネリクスは、右辺で型パラメータを指定しなくてもよくなりました

<>のことをダイヤモンド演算子 (Diamond Operator)と呼びます

どうせIDEが補完してくれる部分だったので、正直タイプ数はそんなに変わらなくて、嬉しいかと言われると微妙

コードがある程度ごちゃごちゃしなくなったので、見やすくなった点はだいぶ嬉しい

Page 13: NDS36 Java7&Java8

いちおーJava8では、代入だけではなく引数に入れるときにもダイヤモンド書いていいことになったらしいです(特に嬉しくはない)

Page 14: NDS36 Java7&Java8

テキスト

Java8でコールバックが書きやすくなったお話() -> {}

Page 15: NDS36 Java7&Java8

Java7までのinterfaceの匿名実装インターフェースの定義

匿名クラスを実装してセット

Page 16: NDS36 Java7&Java8

–Yukiya Nakagawa (1987~)

“だるい。”

Page 17: NDS36 Java7&Java8

Java8から

ラムダ、はじめました

Page 18: NDS36 Java7&Java8

省略の過程原型

処理が1行の時、ブロックとreturnは省略可

引数の型が自明であるときは省略可

引数が1つのときは括弧を省略可

Page 19: NDS36 Java7&Java8

まとめ

最近のJava言語(特にJava8)は、ScalaなどのJava派生言語が持つ良いところを積極的に取り込もうとしている感じが好ましいです。

Java8には他にも色々と新機能が追加されているので、調べてみるといいと思います。

Page 20: NDS36 Java7&Java8

最後に業務連絡

AndroidのVMにはJava7の一部の機能(型推論とか)しか実装されませんでした

Java8にはJava7で追加されたinvokeDynamicを踏まえた新機能が結構あるっぽいので、AndroidにはJava8は来ないと思ったほうがいいです

Page 21: NDS36 Java7&Java8

ご清聴ありがとうございました 。゚(゚´Д`゚)゚。