読書会(Java 11 and 12 - New Features)第2回議事録

[ 戻る ]


==========================================================================================
Java読書会BOF 「Java 11 and 12 - New Features」を読む会 第2回
==========================================================================================

"日時","2019年7月6日 10:00 - 17:00"
"場所","川崎市幸区幸市民館 第4会議室"
"出席者(敬称略)","高橋(徹)、高橋(智)、藪下、今井、和田、平山、岩室、遠藤、大部(書記)"

Section 1: JDK 10
======================================================================
Chapter 3: Garbage Collector Optimizations
======================================================================
  Paralell full GC for G1(JEP 307)
----------------------------------------------
 * https://openjdk.java.net/jeps/307

    The design goals of G1 GC
----------------------------------------------
 - msはmsec(milli second)のこと

    G1 memory
----------------------------------------------
 - Humongous:やたらでっかい、途方もない、問う意味 (読み:ヒューモンガス)
 - 1つのブロックに入りきれないオブジェクト、64MB超え

    Sample code
----------------------------------------------
 - なぜサイズが999999なのだろうか、1000000で無い理由は?
 - 連続したbyteデータを作りたかった?
 - Java 9以降G1がデフォルトGC
 - -Xlog:gc*はJava 9からのオプション

    G1 GC logs
----------------------------------------------
 - 36->0(20)の20は何か
 - logからはOutOfMemoryErrorになったことはわからない?

  Summary
----------------------------------------------

Chapter 4: Miscellaneous Improvements in JDK 10
======================================================================
  Technical requirements
----------------------------------------------

  Mapping JDK 10 features with scopes and JEPs
----------------------------------------------

    Consolidationg the JDK forest into a single repository
----------------------------------------------
 - JEP 296
 * https://openjdk.java.net/jeps/296
 - 内部実装の変更:JDKのソースが複数のリポジトリだったのをシングルリポジトリにした

    Thread-local handshakes
----------------------------------------------
 - JEP 312
 * https://openjdk.java.net/jeps/312
 - プログラマは気にしない

    Removal of the Native-Header Generation Tool (javah)
----------------------------------------------
 - JEP 313
 * https://openjdk.java.net/jeps/313
 - Cのヘッダーとコードを書いてくれる
 - Java 10でなくなる

    Additional Unicode language-tag extensions
----------------------------------------------
 - JEP 314
 * https://openjdk.java.net/jeps/314
 - BCP 47: Tags for Identifying Languages
 * https://tools.ietf.org/html/bcp47

    Heap allocation on alternative memory devices
----------------------------------------------
 - JEP 316
 * https://openjdk.java.net/jeps/316

 - 誤植: P59: 7行目: ExceptionではなくError
 - OutOfMemoryException -> OutOfMemoryError

 - NV-DIMM(non-volatile dual in-line memory module): 不揮発性DIMM
 - レイテンシが大きい
 - 大容量で遅い

    The experimental Java-based JIT copmiler
----------------------------------------------
 - JEP 317
 * https://openjdk.java.net/jeps/317
 - Oracleはギリシャ神話、神託
 - Graalは聖杯伝説(フランス語)
 - 由来は宿題

    Root certificates
----------------------------------------------
 - JEP 319
 * https://openjdk.java.net/jeps/319
 - OpenJDKにはない
 - 自分で作って配ってる?

    Time-based release versioning
----------------------------------------------
 - JEP 322
 * https://openjdk.java.net/jeps/322
 - セマンティック バージョニング
 * https://semver.org/lang/ja/

  Summary
----------------------------------------------

Section 2: JDK 11
======================================================================
 - 誤植: P.ii: Section2が重複している
 - Section2:Section2 -> Section2 

Chapter 5: Local Variable Syntax for Lambda Parameters
======================================================================
  Technical requirements
----------------------------------------------

  Lambda expressions
----------------------------------------------

    Explicitly-typed lambda expressions
----------------------------------------------

    Implicitly-typed lambda expressions
----------------------------------------------

  Lambda parameters and type inference with var
----------------------------------------------

    Adding var to lambda parameters
----------------------------------------------
 - 誤植: P.69: 10行目: can't -> canでは?
 - P.70: next chapterはHTTP Client APIではない

    Adding annotations to lambda parameters
----------------------------------------------

Chapter 6:  Epsilon GC
======================================================================
  Technical requirements
----------------------------------------------

  The motivation behind Epsilon GC 
----------------------------------------------
 - 誤植: P.72: 3行目: canが1つ多い
 - So, how can can -> So, how can 

    Features of Epsilon
----------------------------------------------
 - 誤植: P.72: 下から11行目: head dump -> heap dumpか?

      Latency and application performance
----------------------------------------------

        GC-induced overheads versus system overheads
----------------------------------------------

      Extremely short-lived work
----------------------------------------------

  Getting started with the HelloEpsilon GC class
----------------------------------------------

    Which memory area does GC collect - stack or heap?
----------------------------------------------

  Memory pressure testing with Epsilon
----------------------------------------------

  Desiging a garbage-free application
----------------------------------------------

    VM interface testing
----------------------------------------------

  Summary
----------------------------------------------

Chapter 7: The HTTP Client API
======================================================================
  Technical requirements
----------------------------------------------

  A quick flashback
----------------------------------------------

    What can you do with HTTP?
----------------------------------------------

      The need for the HTTP Client API
----------------------------------------------

      HTTP Client usage
----------------------------------------------
 - 誤植: P.84: 下から9行目: classをinterfaceにする
 - The HttpResponce class -> The HttpResponce interface

    A basic example
----------------------------------------------

    The HttpClient class
----------------------------------------------

      Creating an HttpClient instance
----------------------------------------------
 - 誤植: P.86: 13行目: newがgetになっている
- getHttpClient() -> newHttpClient()

 - 誤植: P.86: 19行目: newがない、最後のピリオド不要
 - = HttpClient.builder(). -> = HttpClient.newBuilder()

 - 誤植: P.86: 下から3行目: newがない、最後のピリオド不要
 -  = HttpClient.builder(). -> = HttpClient.newBuilder()

 - 誤植: P.86: 下から1行目: 最後のカンマ不要
 - (Redirect.NORMAL), -> (Redirect.NORMAL)

 - 誤植: P.87: 8行目: 最後のピリオド不要
 -  = HttpClient.newBuilder(). -> = HttpClient.newBuilder()

 - 誤植: P.87: 10行目: Rを大文字にする、最後のカンマ不要
 - .followRedirects(redirect.NORMAL), -> .followRedirects(Redirect.NORMAL)

      Methods of the HttpClient class
----------------------------------------------

      HttpRequest
----------------------------------------------
 - POST():大文字メソッド java初?
 - 誤植: P.91: 1行目: HttpClient -> HttpRequest
 - 誤植: P.91: 表のヘッダーがここだけボールドじゃない
 - 誤植: P.92: 11行目: Java type:strig -> Java type:String

      Httpresponse
----------------------------------------------

  Some examples
----------------------------------------------

    Accessing HTML pages using synchronous GET
----------------------------------------------

    Accessing HTML pages using asynchronous GET
----------------------------------------------

    Downloading multiple hosted image files
----------------------------------------------
 - 誤植: P.92: 11行目: S大文字にする
 - Java type:strig -> Java type:String

 - P.97 ソースコードのインテンドが正しくない

 - 宿題: Reactive Stream(Reactive Programing)は今どうなっているのか
 - P.97の下から3行目 BodySubscriber. BodyBodySubscriberは、「.」で文が切れているので誤植では無い

    Posting form details
----------------------------------------------
  Summary
----------------------------------------------

.. note:: 次回は P.101 Chapter 8: ZGC から。

(以上)


[ 戻る ]