前提
Java17は2021/9にLongTermSupportバージョンでリリース。
Java8のEOLがJava11より後ろ、身の回りはJava11よりJava8利用が多いため、Java8から変更有無に特化。
モジュール管理
パッケージをまとめて管理⇛モジュール管理の導入。
とあるパッケージに含まれるライブラリが、とあるライブラリに依存して、更にそのライブラリが他のライブラリに依存するといった依存関係の解決が難しい。
そこでモジュール(module-info.java)を使用して、依存関係の定義を行えるようになった。
module-info.java
例: aはcは利用不可、aはdを利用可
module module.a {
requires module.b;
}
module module.b {
requires module.c;
retuires transitive moduke.d;
}
module module.c {}
module module.d {}
HttpClient導入
HttpURLConnectionハマること多い?
HttpClientによって楽になる?
http2サポート、非同期通信サポート。
Sealedクラス
Sealedを指定することで指定されたタイプにだけ継承ができる仕組み。
Recordクラス
決まったデータ構造を持つ値の集合。
https://programming-tips.jp/archives/202106/6/index.html
setter()はない。
JVM変更
よくわからない。勉強します。
jshell
javaコードの確認。(インタプリタ言語のように)
他にも機能追加はあるのですが、アプリ開発を行う際のメインどころとしては抑えれたのかなと。
追って情報アップデートしてきます。