Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Kanjava 201804 Java News

217 visualizaciones

Publicado el

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

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

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

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で いろいろやりましょう!

×