読書会(Java 11 and 12 - New Features)第1回議事録
[ 戻る ]
==========================================================================================
Java読書会BOF 「Java 11 and 12 - New Features」を読む会 第1回
==========================================================================================
"日時","2019年6月15日 10:00 - 17:00"
"場所","川崎市教育文化会館 第3会議室"
"出席者(敬称略)","高橋(徹)、高橋(智)、石黒、今井、平山、常念、和田、遠藤、岩室、吉本、大部(書記)"
----------------------------------------------
- Amazon: ペーパーバック: 3516円 オンデマンドプリント、2日ぐらいで受け取り可能
- Amazon: Kindle: 2840円
- Packt.com: eBook: $10 (ebookはePub, PDF, mobiでダウンロード可能)
- Packt.com: eBook + Print: $29.99
紹介ページ
----------------------------------------------
- 著者: Mala Gupta
- Java Champion, JetBrains, Delhi JUG
- Packt.com 出版
- Mapt 小売
Preface
----------------------------------------------
- P2 5行目: exploreshow -> explores how では?
Section 1: JDK 10
======================================================================
Chapter 1: Type Inference
======================================================================
What is type inference?
----------------------------------------------
Type inference with var
----------------------------------------------
Compulsory non-null initialization
----------------------------------------------
Local variables
----------------------------------------------
- P.12 最下行 if..else loops のloopはforループなどのループではなく、輪、一括り的な意味か?
- P.12 最下行 construct コンストラクタではなく構造、どれもstatementsで表現できそうだが、
同じ表現が続くのを避けた?
- P.13 Kindle版だと入れ子のソースコードが読みづらい
Code check - part 1
----------------------------------------------
Using var with primitive data types
----------------------------------------------
- P.16 右辺の型がわかりにくいときのvarは難しい
- 宿題:varが何型か、どうすればわかる?
Type inference with derived classes
----------------------------------------------
Type inference with interfaces
----------------------------------------------
- P.19 whistle(), stand()はコンパイルエラーになる
Using var with arrays
----------------------------------------------
- 配列は型推論できない
Type inference with generics
----------------------------------------------
Code check - part 2
----------------------------------------------
Passing inferred variables to a method
----------------------------------------------
Reassigning values to inferred variables
----------------------------------------------
Explicit casting with inferred variables
----------------------------------------------
Assigning null with explicit casting
----------------------------------------------
Type inference in previous versions of Java
----------------------------------------------
Type inference in Java 5
----------------------------------------------
Type inference in Java 7
----------------------------------------------
- P.26 deliverはprint
- myClass.<Boolean>deliver(new Boolean("true")); -> myClass.<Boolean>print(new Boolean("true"));
- myClass.deliver(new Boolean("true")); -> myClass.print(new Boolean("true"));
Type inference in Java 8
----------------------------------------------
- P.27 System.out.print(s); -> System.out.println(s);
Challenges
----------------------------------------------
Limiting the scope of failed assumptions
----------------------------------------------
Breaking existing code
----------------------------------------------
- ソースコードは以下を参照
https://github.com/PacktPublishing/Java-11-and-12-New-Features
/Chapter01/Demo.java
- クラス名とインターフェース名にvarは使えない
- int varとstatic long varは使える
- コード上では同時に使えない(同じ変数名の宣言でNG)ので片方をコメントアウトしている
Non-denotable types
----------------------------------------------
Meaningful variable names
----------------------------------------------
Code refactoring
----------------------------------------------
Type inference versus dynamic binding
----------------------------------------------
Summary
Chapter 2: AppCDS
======================================================================
- CDSは Java 5からあった。
Technical requirements
----------------------------------------------
What is CDS?
----------------------------------------------
Location of the shared archive file
----------------------------------------------
- OpenJDK 12では、
zipを展開したフォルダ -> jdk-12.0.1.jdk/Contents/Home/lib/server/classes.jsa
Solaris/Linux/maxOS: Home以下の/lib/[arch]/server/classes.jsa
Manual creation of classes.jsa
----------------------------------------------
Usage of CDS
----------------------------------------------
- デフォルトでは -Xshare:auto で、jsaファイルがあればCDSがオンになる
AppCDS
----------------------------------------------
Benefits of AppCDS
----------------------------------------------
- クラスが多いとすごい効果があるかもしれない
Enabling application class data archive
----------------------------------------------
- P.40 2行目: error message -> warningでは?
Which application classes to archive
----------------------------------------------
Creating an application shared archive file
----------------------------------------------
- P.42 JDK11ではオプションの2行目、-XX:+UseAppCDSを外す
Using the shared application archive file
----------------------------------------------
- P.43 -Xshare:on不要なのでは?
- jsaはアーキテクチャ依存なのか?
- コマンド実行結果がわかりにくい
Summary
Chapter 3: Garbage Collector Optimizations
======================================================================
Technical requirements
----------------------------------------------
The GC interface
----------------------------------------------
- JVMの中の話
Benefits
----------------------------------------------
Driving factors
----------------------------------------------
- P.47 HotSpot ≒ Oracle HotSpot JVM
- GC Developer,HotSpot Developer : どっちもJVMの開発者
Impact
----------------------------------------------
- P.48 Shenandoah GC = シェナンドGCと読む
.. note:: 次回は p.48 Paralell full GC for G1(JEP 307) から。
(以上)
[ 戻る ]