SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Java11:サポートとVM機能編
KUBOTAYuji(@sugarlife)
JJUGNightSeminar2018/Oct
Java11の「サポート」
Disclaimer
解りやすくするためざっくり説明している箇所があります
発表者は5年以上OpenJDKのサポートを担当していた経験上、しば
しば商用/本番環境でもOpenJDKを利用している前提で話をします
Javaのサポート提供企業のいずれとも関係がなく、各企業のサポー
ト内容詳細については各企業に問い合わせください
本資料でのサポートの定義
開発サポート
バグの修正
セキュリティ対応(脆弱性修正)
機能拡張、新機能開発を含まない維持管理開発
配信サポート
バイナリの配信・提供
バグ・脆弱性修正を行ったアップデートの配信
一定期間だけ無償なケースもある
問合せサポート
SLAが定められている問合せ対応(障害対応、性能問題等)
コンサル
企業・団体独自の経験提供
誰がやってるのか?
開発サポート
OpenJDKコミュニティ
Java11は現在は3年間の予定
独自Java開発企業・団体(ここではTCKを通ったもの)
配信サポート(一例、Java11に限定)
Oracle,AzulSystems(Zulu,Zing),RedHat,IBM
AdoptOpenJDK,各Linuxディストリビューション
(Debian,Ubuntu,Fedora,Arch,etc)
OpenJDKコミュニティは配信していない
問合せサポート
バイナリ配信サポートの一部企業、およびその他の企業
無償で使いたい人向けの結論
AdoptOpenJDKから入手しよう
Java11の無償「配信サポート」期間が一番長い(4年間)
想定問答集
つらつら説明されるよりは自身の問題として捉えると身に入りやすいの
でこの形式で説明します
OpenJDKってなに?
オープンソース実装のJavaです。http://openjdk.java.net/
多くの人が使っていたであろうOracleJDKのPublicUpdate(≒無償版)が
Java11から提供されないので注目が集まりました
コミュニティのリード役はOracleでパッチ投稿数も段違いです。
以前はOracleしかコミットできない部分もありましたが、現在は改善が
進められ、よりオープンなコミュニティへと前進しています
OpenJDKはLTSを提供しないの?
本資料における「開発サポート」であればサポート期間は長い。Java9
や10は半年でしたがJava11は現時点で3年間の予定です。
今後より長くなる可能性もあります。前例としてJava6はOracleがメン
テナンスリードを退役してからはRedHatがリードを務めてました。
「配信サポート」や「問合せサポート」は以前からやっておらず、今後
も予定はありません
Oracleから無償なJava入手できないの?
できます。
OracleOpenJDKと良く呼ばれるようになったOracle社がビルドした
OpenJDKがhttp://jdk.java.netから無償で入手できます。
恐らく他と比較して最速で入手できますが、配信サポートは半年間(※)で
す。(※:『オラクルの公式OpenJDKバイナリは6カ月でアップデートを終
了』の項参照)
OpenJDKではない方のOracleJDKについては新しいライセンスで公開
されています。ライセンスを読んで利用する必要があります
OpenJDKは商用で利用できる品質なの?
DEFINITELYYES.
前例についてはこちらの資料も参考にしてください
OpenJDKに乗り換えるのは簡単なの?
簡単です。
OracleJDKからOpenJDKのマイグレーションはあまり問題は起きにく
いですが、証明書周りが若干ネックになるケースもあります。
大半はOpenJDKの実装というよりはライセンス関係の問題です。
なお、Java8からJava11のマイグレーションはOracleJDKでも
OpenJDKでも等しく面倒です
AdoptOpenJDKリリース遅れてるけど大丈夫?
大丈夫です。
元々サードパーティのOpenJDKはリリース後にテストなどをするのでマ
イナーアップデートでも1‑2週間ぐらいは遅れます。
AdoptOpenJDKもリリース後からビルドやテストを実施してるので遅れ
ることは必然です。Java11のリリース状況はここで確認できます。約一
週間ぐらいでリリースされました
ちなみにOracleだけがほぼ同時に配信していました。0dayattackリスク
を勘案する場合、OracleOpenJDKが選択肢に入ります
JREって無くなったんでしょ?
※JRE:Java開発ツールキットなどを除いたJavaランタイム環境のみに限
定されたパッケージ、インストーラ、バイナリ
Windows/MacOSは実質その通り。Linuxディストリビューションの
OpenJDKは元々別パッケージで提供されているのでおそらく引き続き提
供される(全部は確認しておらず未リリースもあります)
例: openjdk-11-jre と openjdk-11-jdk (Ubuntu等)
例: java-1.11.0-openjdk と java-1.11.0-openjdk-devel
(Fedora,RHEL等)
より軽量な java-1.11.0-openjdk-headless もある
Javaの実行バイナリサイズを削減する手段はjlinkなどが別に用意されて
いるので、コンテナ等ではそちらを利用すると良いでしょう
JavaFXってなくなったんでしょ?
いいえ。
正しくはOracleJDK同梱ではなくなりました。OpenJDKは昔から同梱
していません。OpenJDKにも同梱される流れを期待していたら同梱をや
めてしまった...
OpenJDKコミュニティ内にJavaFXのオープン実装であるOpenJFXのプ
ロジェクトがあります。バイナリはこちら(openjfx.io)からダウンロード
できます。
Javaって有償になったんでしょ?
いいえ。
OracleJDKの「バイナリ配信サポート」が有償になりました。Oracleは
この代替として「OracleOpenJDK」を提供しています。
いつまでにJava11に乗り換えるべきか?
Java8の「配信サポート」期限が切れる前に乗り換えましょう
OracleJDK:
有償:2025/3
無償(PublicUpdate):2019/1(個人向けは2020/12)
RHELのOpenJDK:2023/6
AzulSystems:
ZuluEnterprise:2026/3
Zing:2025/3
IBMJava:2022/4
参考:次LSTのJava17は2021/9リリース予定
すぐにJava12に乗り換える必要あるんでしょ?
ないです。※発表者の個人的観点です
仕事であればOpenJDKの開発サポートが短いバージョンは無視してOK
個人であれば好き好き。私はJava12を使ってます
何を使うべきか?
※発表者の個人的観点です
基本は予算と要件に合わせて選択する
無償でバイナリ配信サポートなら「AdoptOpenJDK」かLinuxディ
ストリビューション提供パッケージ
4年以上のバイナリ配信サポートなら有償サポートを買う
クラウド利用者は利用パッケージのサポート内容に依存する
サポート要らなくない?
※発表者の個人的観点です
多くの場合、最低限必要なのは配信サポートです。
無償であればAdoptOpenJDKが4年間のサポート予定なので、次のLTS
であり3年後にリリース予定のJava17にマイグレーションする猶予が1年
あります。
有償であれば8年間のサポート提供する企業もあり、より猶予がありま
す。
問合せサポートは組織と予算とSLAに依存します。不要であれば不要で
しょうし、組織内でエース級を育てるのもアリです。エース級は外にも
余り居ません。
開発サポートはOSSですので誰でも開発に参加できます。組織立って参
加できればそれが最善です。OpenJDKを元に独自JDKを開発する企業も
あります
Java11の「VM機能」
JEP330:LaunchSingle‑FileSource‑Code
Programs
javac でコンパイルして java で実行するのが基本だった
スクリプト言語のようにソースコードを直接実行する形式を条件付
きで対応
source‑filemodeと呼ばれる
単体ファイルの実行
Javaソースファイルを直接 java コマンドで実行する
java Hoge.java
制約条件
1つのJavaファイルで完結してる
ソース内で最初に出現するトップレベルクラスが
main(String[]) を持つ
良い例
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World.");
}
}
$ docker run --rm -it -v $(pwd)/src:/src openjdk:11-jdk ¥
java /src/Test.java
Hello World.
悪い例
public class Hoge {}
public class Fail {
public static void main(String[] args) {
System.out.println("Fail");
}
}
$ docker run --rm -it -v $(pwd)/src:/src openjdk:11-jdk ¥
java /src/Fail.java
error: can't find main(String[]) method in class: Hoge
スクリプト化
Javaソースをスクリプトのように扱う
./Hoge.java
制約条件
ファイル冒頭に実行するJavaを指定する
#!<JAVA_HOMEフルパス>/bin/java --source 11
--source でバージョン指定も必須
それ以外は単体ファイルと一緒
良い例
#!/usr/lib/jvm/java-11-openjdk-amd64/bin/java --source 11
public class Hoge {
public static void main(String[] args) {
System.out.println("Hello World by shellbang");
}
}
$ docker run --rm -it -v $(pwd)/src:/src openjdk:11-jdk ¥
/src/test.sh
Hello World by shellbang
どうやってるの?
1.Source‑Launcherクラスが起動
2.source‑filemodeで指定したクラスをコンパイル
3.インメモリに展開
4.クラスローダでロード
カスタムクラスローダでロード後アプリケーションクラスロー
ダに委譲
つまりアプリケーションクラスパスに含めたクラス群から、指
定したクラスは参照できない
5. main(String[]) を発火
JEP328:FlightRecorder
最高峰のプロファイラ
OracleJDK商用機能の一つがオープンソース化
できること
ボトルネック調査
GC、同期処理、I/O処理、メソッド毎のCPU時間など
収集可能な情報の例
OS:メモリ、CPU、プロセス情報、nativeライブラリ情報
JVM:起動オプション、GC設定、メソッドプロファイリング、
ヒープメモリ状況
JDKライブラリ:ソケットIO、ファイルIO、エラー情報、モジ
ュール情報
柔軟なイベント収集・監視方法
アプリケーション開始から終了までの全情報をダンプ
-XX:StartFlightRecording=dumponexit=true
カスタムイベントを作成して独自情報を収集
jdk.jfr.Event 等を利用する(OracleJDKでの実装例)
注意点
FlightRecorderはツールではなくてJVMの情報収集機能
可視化にはJDKMissionControlのバージョン7以降が別に必
要。これは同梱されてない
JMCもFlightRecorderと同時にオープンソース化した
OracleJDKのオプション構成から変更されているので流用不可
JEP318:Epsilon:ANo‑OpGarbageCollector
(Experimental)
何もしないメモリアロケータ
-XX:+UseEpsilonGC
No‑OpGC
GCは不要メモリを回収するのが仕事ですが、EpsilonGCは通称「no‑op
GC」と呼ばれる、メモリ回収を行わないGCです。
Javaアプリケーションに割り当てたヒープサイズを超えて使用しようと
した場合ただちにメモリエラー(OutOfMemoryError)になります。
注意点1
通常はJVMにメモリ管理を任せているため、意図しないメモリフットプ
リントの増大や負荷が多少なりとも発生します。EpsilonGCはこの影響
を極力無視できるようにすることを目的としており、プロダクションで
はなく主に開発や研究/実験の目的で利用されることを想定していま
す。JITとか。
System.gc() も当然動きません。
注意点2
このGCは限定的に「使える」。ただし、
ヒープとスタックの違い
ガベージを生成しないオブジェクトとは何か
TLABサイズがパフォーマンスに影響する
EpsilonGCはアロケート方法が独自
自分のアプリケーションのライフサイクルとヒープサイズ
などを把握した上で使うことが望ましい。なおExperimentalです。
JEP333:ZGC:AScalableLow‑LatencyGarbage
Collector(Experimental)
PauselessGC
-XX:+UseZGC
PauselessGC
今までのGCはヒープサイズやライブセット数に比例して完全停止
時間(Stop‑The‑World,STW)が長くなる問題があった
STWをRootScanのみに限定することでこれを解決した
GC各処理の徹底的な並列化、他
ColoredPointers等よるロードバリア処理改善
Coloredpointer:マーク状態等を表現
データ構造やページング処理等の工夫も
とはいえconcurrentclassunloadingがまだ未実装
世代別GCではない等、従来GCとアルゴリズムが大きく異なる
注意点1
64bit限定
ColoredPointersが64bit前提です
仮想メモリを利用している
CompressedOopsもサポートしてません
レイアウトは ZBitField を追いかけてみよう
開発動機的にも32bitサポートは望み薄
Linux限定
シンプルにLinux前提の実装がちょくちょくある
需要があれば他も対応するらしい
注意点2
現時点ではExperimentalであり、本番/商用で使うべきではないです。使
う場合、
仕様変更の追跡が必要
普通に変更がガンガン入ってる
クラスアンローディング周りは確実に(大規模)変更が入る
LargePagesやNUMAなどのメモリ効率性に関わる設定や監視も必
要
小さいヒープなら関係ないが、その場合既存GCで良い
などを把握した上で使うことが望ましい。
Question?
KUBOTAYuji(@sugarlife)

Contenu connexe

Tendances

GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~Shinji Takao
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
 
スレッドダンプの読み方
スレッドダンプの読み方スレッドダンプの読み方
スレッドダンプの読み方Funato Takashi
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みChihiro Ito
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...Shinji Takao
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャーssuser070fa9
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)NTT DATA Technology & Innovation
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM LoggingYuji Kubota
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Koichi Sakata
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門minazou67
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートOracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートオラクルエンジニア通信
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)NTT DATA Technology & Innovation
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢apkiban
 
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話wind06106
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」y torazuka
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)NTT DATA Technology & Innovation
 

Tendances (20)

GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
スレッドダンプの読み方
スレッドダンプの読み方スレッドダンプの読み方
スレッドダンプの読み方
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートOracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
 
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 

Plus de Yuji Kubota

Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Yuji Kubota
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Yuji Kubota
 
オンライン会議と音声認識
オンライン会議と音声認識オンライン会議と音声認識
オンライン会議と音声認識Yuji Kubota
 
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugHead toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugYuji Kubota
 
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Yuji Kubota
 
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugYuji Kubota
 
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Yuji Kubota
 
Project Jigsaw #kanjava
Project Jigsaw #kanjavaProject Jigsaw #kanjava
Project Jigsaw #kanjavaYuji Kubota
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjugYuji Kubota
 
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Yuji Kubota
 
Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjugYuji Kubota
 
jcmd #javacasual
jcmd #javacasualjcmd #javacasual
jcmd #javacasualYuji Kubota
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpYuji Kubota
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugYuji Kubota
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Yuji Kubota
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpYuji Kubota
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualYuji Kubota
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTYuji Kubota
 

Plus de Yuji Kubota (20)

Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15
 
オンライン会議と音声認識
オンライン会議と音声認識オンライン会議と音声認識
オンライン会議と音声認識
 
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugHead toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
 
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Catch up Java 12 and Java 13
Catch up Java 12 and Java 13
 
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
 
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
 
Project Jigsaw #kanjava
Project Jigsaw #kanjavaProject Jigsaw #kanjava
Project Jigsaw #kanjava
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjug
 
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
 
Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjug
 
jcmd #javacasual
jcmd #javacasualjcmd #javacasual
jcmd #javacasual
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
 

Introduction to Java 11: Support and JVM Features #jjug