Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kanjava 201804 Java News

180 views

Published on

2018/04/13(金)に開催した関西Javaエンジニアの会(関ジャバ) '18 4月度イベントでのスライドです。

・Java News - Java 10リリース!
3/20にJava 10がリリースされました!簡単にJava 10のリリース内容を解説します。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Kanjava 201804 Java News

  1. 1. Java News 関西Javaエンジニアの会 ポノス株式会社 阪田 浩一 @jyukutyo #kanjava
  2. 2. Disclaimer 以下の事項は個人の理解に基づいています。 正確な情報を提供することに努めています が、誤りがあることがあります。何かを確 約するものではないため、この情報を元に 判断なさらないでください。
  3. 3. Java SE 10リリース! • 2018/03/20 • non LTSリリース
  4. 4. リリースサイクルの変更 9 (17/9) ### 10(18/3) ### 11(18/9) ################## 12 ### 13 ### 14 ### 15 ### 16 ### 17 ################## 6ヶ月ごとに リリース 3年ごとに LTSリリース #: サポート期間
  5. 5. 無償版のOracle JDKは なくなる
  6. 6. OpenJDKのビルドが 代わりとなる
  7. 7. ライセンスはGPL (クラスパス例外付きGPLv2)
  8. 8. Oracle JDKとOpenJDK • 機能的な差はない(TCKにより保証) – Oracle JDKには • オラクルのバイナリコードライセンスがある • 一部のコードが異なる • クローズドソースのサードパーティのコンポーネント が含まれている – グラフィック・ラスタライザ、サード・パーティ・フォン ト、追加ドキュメントなど • 商用機能がある
  9. 9. 商用機能は OpenJDKへ統合される
  10. 10. Java SE 10 の内容
  11. 11. ローカル変数の 型推論
  12. 12. Javaにおける 型推論の歴史
  13. 13. List<String> l = Collections.<String>emptyList(); List<String> l = Collenctions.emptyList(); -- List<String> l = new ArrayList<String>(); List<String> l = new ArrayList<>(); -- Predicate<String> p = (String s) -> s.length() == 0; Predicate<String> p = s -> s.length() == 0;
  14. 14. URL url = new URL(”http://openjdk.java.net”); var url = new URL(”http://openjdk.java.net”);
  15. 15. 型推論 • ❌動的型付き • コンパイラが型を補完してくれるイメージ
  16. 16. var hello = ”hello”; hello = 1; // できません
  17. 17. なぜローカル変数だけ? ローカル変数以外は そのファイル(クラス)内で 完結しないから
  18. 18. 制限
  19. 19. // できません var x; var x = 1, y = 2; var x = null; var x[] = new int[2]; var x = {1, 2, 3}; var x = (x = 7); var x = f = (x, y) -> x + y;
  20. 20. ガイドラインがあります • Style Guidelines for Local Variable Type Inference in Java – 日本語訳 • https://orablogs-jp.blogspot.jp/2018/03/style-guidelines-for-local-variable.html – 原文 • http://openjdk.java.net/projects/amber/LVTIstyle.html
  21. 21. その他 • JEP 304: Garbage Collector Interface • JEP 307: Parallel Full GC for G1 • JEP 310: Application Class-Data Sharing – 通称AppCDS • JEP 317: Experimental Java-Based JIT Compiler – いわゆるGraal • 他にもたくさん
  22. 22. Graal JVMCIを利用した Java製JITコンパイラ ≠ GraalVM
  23. 23. JVMCI • JEP 243: Java-Level JVM Compiler Interface – JavaでJITコンパイラを実装するためのインタフェースを提供
  24. 24. Graal 5/17(木)の Java Day Tokyoで セッションがあります! (Twitter社エンジニア)
  25. 25. Graal Twitter社では Graalを本番環境で すでに利用中
  26. 26. Java 10で いろいろやりましょう!

×