読書会(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 から。
(以上)
[ 戻る ]