Soumettre la recherche
Mettre en ligne
LL2021 Java update
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
70 vues
T
torutk
Suivre
Java update after Java SE 11 till 2021.
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 21
Télécharger maintenant
Recommandé
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
Ll tiger clojure
Ll tiger clojure
Toshiaki Maki
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
Jakarta EE 9 と これから
Jakarta EE 9 と これから
Kenji Kazumura
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
Yuji Kubota
All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...
Kazuhiro Sera
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
NTT DATA Technology & Innovation
Recommandé
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
Ll tiger clojure
Ll tiger clojure
Toshiaki Maki
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
Jakarta EE 9 と これから
Jakarta EE 9 と これから
Kenji Kazumura
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
Yuji Kubota
All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...
Kazuhiro Sera
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
NTT DATA Technology & Innovation
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
NTT DATA Technology & Innovation
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
David Buck
Daisukei vsug ef
Daisukei vsug ef
vsug_jim
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
オラクルエンジニア通信
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
A Prolog To Java Translator System And Its Application
A Prolog To Java Translator System And Its Application
guestc68147
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Hirofumi Iwasaki
Dotnetcore30forwindesktop
Dotnetcore30forwindesktop
ru pic
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
日本マイクロソフト株式会社
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
Developers Summit
JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020
Kenji Kazumura
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
Takashi Ito
Contenu connexe
Tendances
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
NTT DATA Technology & Innovation
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
David Buck
Daisukei vsug ef
Daisukei vsug ef
vsug_jim
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
オラクルエンジニア通信
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
A Prolog To Java Translator System And Its Application
A Prolog To Java Translator System And Its Application
guestc68147
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
Tendances
(15)
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
Daisukei vsug ef
Daisukei vsug ef
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
A Prolog To Java Translator System And Its Application
A Prolog To Java Translator System And Its Application
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
Grailsのススメ(仮)
Grailsのススメ(仮)
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Similaire à LL2021 Java update
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Hirofumi Iwasaki
Dotnetcore30forwindesktop
Dotnetcore30forwindesktop
ru pic
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
日本マイクロソフト株式会社
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
Developers Summit
JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020
Kenji Kazumura
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
Takashi Ito
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
Takakiyo Tanaka
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
日本マイクロソフト株式会社
Java scriptの進化
Java scriptの進化
maruyama097
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
Takakiyo Tanaka
2011年javaの旅
2011年javaの旅
torutk
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
Takakiyo Tanaka
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration
Kazuchika Sekiya
Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会
Mitsuhiro Okamoto
Modern frontend overview_r3
Modern frontend overview_r3
makotunes
JDK: 新しいリリースモデル解説
JDK: 新しいリリースモデル解説
オラクルエンジニア通信
Similaire à LL2021 Java update
(20)
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Dotnetcore30forwindesktop
Dotnetcore30forwindesktop
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
Java scriptの進化
Java scriptの進化
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
2011年javaの旅
2011年javaの旅
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration
Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会
Modern frontend overview_r3
Modern frontend overview_r3
JDK: 新しいリリースモデル解説
JDK: 新しいリリースモデル解説
Plus de torutk
Jjugccc2017spring m6 javafx
Jjugccc2017spring m6 javafx
torutk
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
torutk
LLoT2016 Java Update
LLoT2016 Java Update
torutk
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
torutk
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
torutk
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
torutk
Jjug night seminar201208_lt_cxxからjvm起動
Jjug night seminar201208_lt_cxxからjvm起動
torutk
2012年javaメモリリーク
2012年javaメモリリーク
torutk
Plus de torutk
(9)
Jjugccc2017spring m6 javafx
Jjugccc2017spring m6 javafx
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
LLoT2016 Java Update
LLoT2016 Java Update
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
Jjug night seminar201208_lt_cxxからjvm起動
Jjug night seminar201208_lt_cxxからjvm起動
2012年javaメモリリーク
2012年javaメモリリーク
LL2021 Java update
1.
Java Updates LL2021 高橋 徹(Java読書会BOF) 岩室
元典(Java読書会BOF)
2.
Java読書会BOFについて 2021-08-28 LLoT Language
Update - Java 2 毎月1回開催中 現時点で 267回開催(39冊) http://www.javareading.com/bof/ 2020.10~ 2021.8~ 2019.11~ 2019.6~ 2018.12~
3.
本日お話すること Javaのアップデート概要 言語仕様 ライブラリ(API) ランタイム(JavaVM) ツール 2021-08-28 LLoT Language
Update - Java 3
4.
Javaのアップデート概要 2021-08-28 LL2021 Language
Update - Java 4 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 1.0 1.1 1.2 1.3 1.4 5 6 7 8 9 10 11 12 13 14 15 16 17 半年毎のメジャーバージョンアップ 3年毎にLTS版、長期サポート それ以外は非LTS版、次のメジャーバージョンまでの短命サポート 今日お話しする範囲 α
5.
Javaのアップデート概要 2021-08-28 LL2021 Language
Update - Java 5 8 11 JVM Ecosystem Report 2021より引用 https://snyk.io/jvm-ecosystem-report-2021/ 複数回答ありの結果 製品で使用しているJDKバージョンの調査結果
6.
Javaのアップデート概要 No. 種類 内容 1
Java SE (Java Platform, Standard Edition) バージョン Java言語、標準API、仮想マシンの仕様 2 JDK (Java Development Kit) バージョン Java SE仕様を実装したJavaプログラムの開 発・実行環境 2021-08-28 LL2021 Language Update - Java 6 • OpenJDKコミュニティがGPLv2クラスパス例外の下オープンソース実装している JDKがOpenJDK • OpenJDK(ソースコード)をOracle社他幾つかの組織がビルドしたOpenJDKバイ ナリを有償あるいは無償で提供 「OpenJDKディストリビューション」 Java SE、JDKそしてOpenJDKについて
7.
Javaのアップデート概要 組織名 ディストリビューション名 対応OS
ライセンス LTS 版 備考 Oracle Oracle JDK Linux, Windows, macOS 商用†1 ✔ Oracle OpenJDK Linux, Windows, macOS GPLv2クラスパス例外 N/A Eclipse Temurin Linux, Windows, macOS GPLv2クラスパス例外 ✔ Azul Systems Zulu Linux, Windows, macOS GPLv2クラスパス例外 ✔ ZuluFX Linux, Windows, macOS GPLv2クラスパス例外 ✔ JavaFX同梱版 Red Hat (Red Hat)OpenJDK Linux, Windows GPLv2クラスパス例外†2 ✔ Amazon Corretto Linux, Windows, macOS GPLv2クラスパス例外 ✔ BellSoft Liberica JDK Linux, Windows, macOS GPLv2クラスパス例外 ✔ JavaFX同梱版あり Microsoft Microsoft Build OpenJDK Linux, Windows, macOS GPLv2クラスパス例外 ✔ SAP SapMachine Linux, Windows, macOS GPLv2クラスパス例外 ✔ 2021-08-28 LL2021 Language Update - Java 7 †1 個人利用または組織での開発用途で無償利用可能な OTNライセンスあり †2 Linux(RHEL)上でのOpenJDKは、RHELサブスクリプションに基づく使用。Red Hatミドルウェア 以外でWindows上での実行(Java workload)には追加のサブスクリプション必要。 OpenJDKディストリビューション
8.
Javaのアップデート概要 OpenJDKディストリビューション 比率 1 AdoptOpenJDK
†1 44% 2 Oracle OpenJDK 28% 3 Oracle JDK 23% 4 Zulu 16% 5 Corretto 9% 6 Linux同梱 OpenJDK 8% 7 Red Hat JDK 8% 8 Oracle Graal VM 6% 2021-08-28 LL2021 Language Update - Java 8 JVM Ecosystem Report 2021より https://snyk.io/jvm-ecosystem-report-2021/ 複数回答ありの結果 製品に使用しているOpenJDKディストリビューション の比率調査 †1 現在はEclipse ファウンデーション のTemurinに移管
9.
Java Update -
言語仕様 • switch式⓮ • テキストブロック⓯ • instanceofのパターンマッチング⓰ • レコード⓰ • シールクラス⓱ 2016-08-27 LLoT Language Update - Java 9 注)プレビュー機能を除く Java SE 11より後に導入された言語仕様の更新
10.
Java Update –
言語仕様 switch式 2016-08-27 LLoT Language Update - Java 10 int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; }; switch式の結果を 変数に代入 break不要 フォールスルーなし 複数条件を列挙 注)java.time.DayOfWeek(enum型)を使った例で、全ての列挙子をcaseで使用して いるので defaultの記述は不要
11.
Java Update –
言語仕様 テキストブロック 2016-08-27 LLoT Language Update - Java 11 String html = ””” <html> <body> <p>Hello World.</p> </body> </html> ”””; テキストブロック 開始 テキストブロック 終了 テキストブロック終了記号のインデント位置 または空白以外のテキストブロックで最も浅 いインデント位置までが除外される。
12.
Java Update –
言語仕様 instanceofのパターンマッチング 2016-08-27 LLoT Language Update - Java 12 Shape shape = ... if (shape instanceof Rectangle r) { return r.width() * r.height(); } キャスト演算子不要 instanceofの第2オペランドに 指定したパターン変数は、 キャスト不要で第1オペランド の型として利用可能 Shape shape = ... if (shape instanceof Rectangle) { Rectangle r = (Rectangle) shape; return r.width() * r.height(); } 従来のコード キャスト演算子必要
13.
Java Update –
言語仕様 レコード 2016-08-27 LLoT Language Update - Java 13 public record Rectangle(double width, double height){} 新たな型 record の導入 final class Rectangle extends Record { private final double width; private final double height; Rectangle(double width, double height) { this.width = width; this.height = height; } double width() { return this.width; } double height() { return this.height; } public boolean equals(Object o) { ... 略 } public int hashCode() { ... 略 } public String toString() { ... 略 } } レコードを構成する要素 の型と名前を宣言 構成要素がfinalのフィール ドとして生成 コンストラクタが生成 getterメソッドが生成 equals, hashCode, toStringメソッドが生成
14.
Java Update –
言語仕様 シールクラス 2016-08-27 LLoT Language Update - Java 14 public sealed class Shape permits Circle, Square, Rectangle { ... } sealed修飾子導入 permitsで拡張可能なクラ スを指定 Shape Circle Square Rectangle Hollow permitsで指定さ れない型は拡張 不可
15.
Java Update –
ライブラリ • Streamを分岐(teeing)、BiFunctionで合流⓬ • CompactNumberFormat で数値をロケール依存の桁単位 で書式化⓬ • NullPointerExceptionのメッセージ改善⓮ • デジタル署名アルゴリズムにEdwars-Curve Digital Signature Algorithm追加⓯ • UNIXドメインソケットチャネル⓰ • StreamインタフェースにtoListメソッド、mapMultiメ ソッド追加⓰ • java.util.HexFormatクラス⓱ 2016-08-27 LLoT Language Update - Java 15 アプリケーション開発者の観点で気になるAPIを抜粋します
16.
Java Update –
ランタイム • デフォルトCDSアーカイブ⓬ • 動的なCDSアーカイブ⓭ • ZGC、Shenandoah GC追加⓯ • CMS GC削除⓭ • Nashorn JavaScriptエンジン削除⓯ • Windows/AArch64対応⓰ • macOS/AArch64対応⓱ • Solaris OSとSPARCプロセッサ対応取りやめ⓯ 2016-08-27 LLoT Language Update - Java 16 CDS: クラスデータ共有。起動時間短縮、フットプリント削減に寄与 GC: ガベージコレクタ
17.
Java Update –
ツール • javadocの古い機能削除⓭ • pack200、unpack200ツール削除⓮ • jjs削除⓯ • rmic削除⓯ • jpackage⓰ 2016-08-27 LLoT Language Update - Java 17 javadoc: ソースファイルのコメントからAPIリファレンスをHTML形式で生 成する。 pack200/unpack200:JARファイルを高圧縮する。 jjs:javascript実行コマンド rmic: JavaのリモートプロシージャコールRMIで静的スタブを生成するツー ル。
18.
Java Update –
ツール jpackage • Javaプログラムをその実行環境(JavaVM)と一緒に梱包し、 実行したい環境のプログラム配布形式まとめるツール。 2021-08-28 LL2021 Language Update - Java 18 OS 形式 Windows EXE or MSI Linux RPM or DEB macOS DMG プログラムが使用するJDK のモジュールだけを抜粋 するので配布サイズが小 さい 種類 容量 (参考)Electronの場合 開発サイズ 22MB 680MB 配布ファイル 21.5MB 78MB 展開サイズ 60MB 256MB GUI(Swing)で Hello Worldを表示するプログラムのサイズ(Windows OS)
19.
Java Update –
ツール 統合開発環境(IDE) IDE 比率 1 IntelliJ IDEA 71.6% 2 Eclipse IDE 24.6% 3 Visual Studio Code 23.2% 4 Vi/Vim/Emacs/etc 13.6% 5 Apache NetBeans 12.9% 6 Android Studio 5.9% 7 Oracle JDeveloper 1.1% 8 その他 0.9% 2021-08-28 LL2021 Language Update - Java 19 JVM Ecosystem Report 2021より引用 https://snyk.io/jvm-ecosystem-report-2021/ 複数回答ありの結果 もっとも使われている統合開発環境(IDE)
20.
Java Update情報源 • Java
Magazineオンライン https://blogs.oracle.com/javamagazine/ • 日本語訳(一部) https://blogs.oracle.com/otnjp/java-magazine-2 • Azul Java Updates https://www.azul.com/category/java-updates/ 「67 New Features in JDK 16」等の記事 • InfoQ Javaニュース https://www.infoq.com/jp/java/news/ 「Javaニュース総まとめ」の記事(日本語) 2021-08-28 LL2021 Language Update - Java 20
21.
ご清聴ありがとうございました 2016-08-27 LLoT Language
Update - Java 21
Notes de l'éditeur
本日はプログラミング言語Javaの、この数年間の更新状況をお話しします。 Java読書会BOFのメンバーである岩室さんと代表の高橋で対談形式で進めます。
Java読書会BOFは、毎月1回Javaに関する技術書籍の読書会を開催しています。 1998年より、通算で267回、現在39冊を読み終わったところです。 この3年間で読んだ本はこちらになります。 この中には英語の書籍が2冊ありますが、Javaの新しい機能について日本語の書籍があまりないため採用しました。 岩室さんは、2005年頃より参加している読書会BOFの常連メンバーで、お仕事でもJavaを使っています。簡単にJavaとの関わりなどを紹介いただきます。岩室さんよろしく。 □岩室さん ありがとうございます。 私、高橋は、1998年から参加し、現在代表を務めています。
本日は、この3年ほどのJavaにおけるアップデートについて、概要、言語仕様、標準ライブラリ、実行環境であるランタイム、そしてツールの観点からお話しします。
Javaのアップデートの概要を、Javaの最初のアルファ版がリリースされた1995年から2021年までの間でメジャーバージョンアップされた年を示しています。 ここで、Java 6からリリース間隔が長く延びて、なかなか新しい機能がリリースされないという時代が続きました。 そこで、Java 9からは半年毎にメジャーバージョンアップを行い、新機能が順次リリースされるようになりました。 頻繁なバージョンアップに対して、3年毎に1つLTS版を指定し、長期サポートを提供します。LTSでないメジャーバージョンは、次のメジャーバージョンがリリースされた時点でサポート終了となります。
こちらは、セキュリティ企業のSnyk(スニーク)がAzul社と共同で調査した、製品に使用しているJDKのバージョンの調査結果です。 長期間サポートが提供されている JDK 8 と、LTS版である JDK 11 が圧倒的に多いです。また、調査時点で最新の非LTS版である JDK 15 もそこそこ使われています。 岩本さんは、仕事ではどのバージョン使っていますか? □岩本さん
Javaのバージョンには、仕様であるJava SEバージョンと、開発・実行環境としてJava SEを実装したJDKバージョンとがあります。 JDKについては、OpenJDKコミュニティによりGPLv2クラスパス例外ライセンスでオープンソース開発されているOpenJDKが主流です。 このOpenJDKソースを、Oracle社を初め他の組織がビルドしたOpenJDKバイナリが有償あるいは無償で提供されています。 Linuxに倣って、OpenJDKディストリビューションと呼ばれています。 □岩室さん GPLv2クラスパス例外について語る
主なOpenJDKディストリビューションを示しています。 Oracle他、Eclipse、Azul Systems、Red Hat、Amazon、BellSoft、Microsoft、SAPなどがOpenJDKディストリビューションを提供しています。 なかには、JDK 11以降はOpenJDKから分離されたGUIライブラリのJavaFXを同梱しているものもあります。 これだけ選択肢が多いのはいいことと思いますが、Javaに習熟していないプログラマーにとっては、どれを使えばよいか悩ましいかもしれません。
こちらは、開発者が製品に使用しているOpenJDKディストリビューションの調査結果です。 これによると、一番回答の多かったのが AdoptOpenJDKです。次に、OracleのOpenJDKビルドおよび商用ライセンスのOracle JDKが続きます。 岩室さんは、どのOpenJDKディストリビューションを使っていますか? □岩室さん 高橋は、JavaFXというGUIライブラリを好んで使うので、OpenJDKディストリビューションのうち、JavaFXを組み込んで提供しているAzul社のZulufxやBellSoft社のLibericaJDKを使うことが多いです。
では、続きまして言語仕様のアップデートについてお話します。 Java 11の後、主要な言語仕様の更新はこの5項目になります。数値は、正式導入されたメジャーバージョンを示します。
Javaにはもともとswitch文がありましたが、新たに式として導入されました。 複数条件の列挙、break文不要などの特徴があります。
テキストブロックにより、改行、インデントを含む長い文字列を簡単に記述できるようになりました。 ソースコードのインデントの中に複数行のテキストを自然に記述し、そのテキストに不要なインデントを含まないようにすることができます。 テキストブロックの各行の先頭にある空白は取り去ることができます。
例えば ShapeというタイプをRectangleというサブタイプにキャストする、いわゆるダウンキャストをしたいとします。 その際は、instanceof 演算子でキャストが可能かを検査し、キャスト演算子でキャストする必要がありました。 今回は、instanceof演算子のオペランドにパターン変数が追加され、パターン変数はキャストせずに使用することができるようになりました。 キャストの記述はそれなりに面倒で、コードも読みにくいので、すっきり書けるのがメリットです。 他の言語だと、もっとすっきり書けるそうですが、岩室さんこめんとありますか? □岩室さん
Javaでは、データを抱える構造体のようなクラスを記述する際は、データをフィールドとして定義し、フィールドに値をセットするコンストラクタ、フィールドの値を読み出すgetterメソッド、そして2つの変数が値が同じ値かどうかを判定するequalsメソッドやハッシュコンテナに格納する際にハッシュ値を返すhashCodeメソッド、文字列化するtoStringメソッドを実装するのがお約束です。 record型は、この構造体のようなクラスにおいてお約束の実装をすべてコンパイラ任せにしてソースコードは必要最小限の記載とするとこができます。 余談 equals, hashCode, toString のメソッドはバイトコード上 invokedynamic で実装
アクセス可能なインタフェースやクラスを実装・継承することができますが、設計によっては特定の型にのみ実装・継承させ、それ以外の型にはさせたくないことがあります。 シールクラスでは、実装・継承する型を予め指定することでそれ以外の型には実装・継承させない仕組みが可能となります。 岩室さん、ここまでの言語仕様で、これは!というものはありましたでしょうか? □岩室さん 高橋は、シールクラスがいいなと思いました。過去に複数組織で開発した際に、APIとしてJavaのインタフェースで定義し、実装を隠蔽して提供していたのですが、なんとそのインタフェースを利用側のクラスが実装しており、後日インタフェースにメソッドを追加した際、利用者のビルドが壊れるということがありました。
標準ライブラリのアップデートは、メソッドの追加を含むと、かなり多数あります。 ここでは、あると便利だなというメソッドの追加、新しいクラスの追加といった比較的大きなモノを抜粋しました。 岩室さん、気になるAPIはありましたか? □岩室さん
Javaのランタイムに関するアップデートです。 まず、CDSと略されるクラスデータ共有の機能が入っています。これは、Javaの起動時間短縮とフットプリント削減につながる機能です。 次に、新しいGCが2種追加されています。これまでのGCはヒープが大きくなるほどGCによる停止時間が増加してしまいました。 新たなGCは、アプリケーションスレッドを止めなければならないGC処理を削減し、大きなヒープでもGCによる停止時間を小さくしています。 また、CMS GCは削除されました。 JavaScriptエンジン Nashornが削除されました。NashornはECMAScript 6までの対応で更新が困難になったこともあり削除となりました。 CPUの対応では、SPARCプロセッサ対応がなくなってしまいました。一方、WindowsとmacOSでARMプロセッサ対応が追加されています。
OpenJDKに標準で含まれているツールです。 javadocはソースファイルのコメントからAPIリファレンスをHTML形式で生成するツールです。古いHTML4およびHTMLフレームで生成する機能が削除されました。 pack200は、JavaのクラスファイルをアーカイブするJARファイルに特化して圧縮する機能です。 jpackageは次のスライドで紹介します。
jpackage は、Javaプログラムとその実行環境を一纏め、インストーラ形式にまとめるツールです。 インストーラ形式は、OS固有の形式を選ぶことができます。 あらかじめJava実行環境を入れていないマシンでも、プログラムをインストールすれば実行可能となります。 Javaの実行環境も一緒にインストールするなら、サイズは大きいの?と思いますが プログラムが必要とするモジュールを抜粋したものになるので配布サイズは小さくなります。 ここで、GUIにHello Worldを表示するプログラムをJavaとElectronで作成し、開発ディレクトリのビルド後のサイズ、配布ファイルのサイズ、インストール後に展開したディレクトリのサイズを比べます。
統合開発環境 IDE の最近の人気度を見てみます。 1位はIntelliJ IDEAで、続いてEclipse、そして最近人気が上がっているVisual Studio Codeが続きます。 岩室さん、どのIDEを使っていますか? どんな点を気に入っていますか? □岩室さん Visual Studio Codeは、Java Extension Packを入れると、コード補完、プロジェクト作成、リファクタリング機能、デバッグなどができるようになり、エディタというよりIDEに近い機能となっていました。
Javaの最新情報をウォッチするなら、このあたりがよいです。 Oracleが出すオンラインJavaMagazineの記事で、一部日本語訳もあります。 次にOpenJDKディストリビューションを出しているAzul社のJavaアップデート情報です。 そして、InfoQのJavaニュースがあります。 最後にJavaアップデートについてどうでしょうか? □岩室さん
Télécharger maintenant