Java7やJava8が僕らの目に
優しくなってきている
Nkzn
2014.3.15 長岡開発者勉強会 #36
自己紹介
名前:中川幸哉 a.k.a なかざん(@Nkzn)
先日27歳になりました(あらさー!)
アグリノート社ウォーターセル社の人
Androidアプリエンジニアです
最近はコーディングよりマネージャー業務とかアーキテクト業務
が多めです
Javaつらい勢
Javaの話
Write Once, Run Anywhere
Java Language
1995年登場
2010年1月、開発元のSunがOracleに買収された
最新バージョンはJava SE 7u51
3日後くらいにJava8がリリースされるらしい
強い静的型付け
C++などからの派生言語
Duke
Java Overview
Hardware
Operating System (Windows, OS X, Linux, others)
Java Virtual Machine(JVM)
Java Code
(.java)
Byte Code
(.class)
compiler
(javac)
Type Checking
Javaと一言に言っても
言語としてのJava(今回はこれ)
動作環境としてのJava
Java Virtual Machine (JVM)
Java Runtime Environment (JRE)
JavaScriptの言い間違えとしてのJava(やめろ)
見た目の特徴
名前空間(package)
クラスベース
前置の型宣言
セミコロン必須
型付きのコンテナ(Generics)
ドットによるフィールドやメソッド
の呼び出し
自身のインスタンスは「this」
テキスト
Java7でGenericsが賢くなったお話
ダイヤモンドは砕けない
Java6まで
Java7から
型推論
代入式の左辺で型が確定しているジェネリクスは、右辺で型パ
ラメータを指定しなくてもよくなりました
<>のことをダイヤモンド演算子 (Diamond Operator)と呼びます
どうせIDEが補完してくれる部分だったので、正直タイプ数は
そんなに変わらなくて、嬉しいかと言われると微妙
コードがある程度ごちゃごちゃしなくなったので、見やすくなっ
た点はだいぶ嬉しい
いちおーJava8では、代入だけではなく引数に入れる
ときにもダイヤモンド書いていいことになったらしい
です(特に嬉しくはない)
テキスト
Java8でコールバックが書きやすくなったお話
() -> {}
Java7までのinterfaceの匿名実装
インターフェースの定義
匿名クラスを実装してセット
–Yukiya Nakagawa (1987∼)
“だるい。”
Java8から
ラムダ、はじめました
省略の過程
原型
処理が1行の時、ブロックとreturnは省略可
引数の型が自明であるときは省略可
引数が1つのときは括弧を省略可
まとめ
最近のJava言語(特にJava8)は、ScalaなどのJava
派生言語が持つ良いところを積極的に取り込もうと
している感じが好ましいです。
Java8には他にも色々と新機能が追加されているの
で、調べてみるといいと思います。
最後に業務連絡
AndroidのVMにはJava7の一部の機能(型推論とか)
しか実装されませんでした
Java8にはJava7で追加されたinvokeDynamicを踏まえ
た新機能が結構あるっぽいので、AndroidにはJava8
は来ないと思ったほうがいいです
ご清聴ありがとうございました
。゚(゚´Д`゚)゚。

NDS36 Java7&Java8