SlideShare a Scribd company logo
10のJava9で変わるJava8の嫌なとこ!
● Java9で解決されるJava8で嫌なことランキング
– 個人的主観に基づく
– どのように解決されるかを紹介
– Java9に上げるときに,気をつけることなども紹介
●
細かくは紹介しないので,気になったものがあった
ら調べてください
– 過去のリリースの既知の事も詳しく説明しない
Jigsaw(モジュール化)
JShell(JavaのREPL)
G1GCデフォルト化
10のJava9で変わるJava8の嫌なとこ!
10位
コンパイルに時間かかりすぎ
コンパイルに時間かかりすぎ
class C<T> {
C() {}
C(T t) {}
C(C<T> c) {}
static <U> C<U> m(C<U> c) {return c;}
public static void main(String... args) {
C<String> c = m(new C<>(m(new C<>(m(new C<>())))); // 1秒以下
}
}
コンパイルに時間かかりすぎ
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>())))))))))
// ネスト5: Javac(2.02s), ECJ(1.17s)
コンパイルに時間かかりすぎ
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>())))))))))))))
// ネスト7: Javac(14.99s) ECJ(10.82s)
コンパイルに時間かかりすぎ
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>(
m(new C<>())))))))))))))))))))
//ネスト10
コンパイルに時間かかりすぎ
1分?
10分?
20分?
60分/それ以上?
60分以上
コンパイルに時間かかりすぎ
● 型検査とオーバロード解決/型推論は同時に行う
– m(new C<>(expr))
● C(T)と仮定して,exprの型検査とオーバロード解決/型推論
● C(C<U>)と仮定して,exprの型検査とオーバロード解決/型推論
– expr=m(new C<>(expr1))なら指数的に増加
コンパイルに時間かかりすぎ
● オーバロード数Nとすると
– N*3回,exprの型検査とオーバロード解決/型推論
● Strict, Loose, Varargs for each of overloaded methods
Tiered Attribution
● 型検査とオーバーロード解決/型推論を分離
●
型検査
– オーバーロード解決内でやる必要は無かった
● オーバーロード解決/型推論
– 実引数に構造的な型与える
●
推論が必要な場合,型推論情報を持つ
– 何度も同じ式を処理しない(メモ化)
1秒以下
4000倍
9位
Stringの+のコード生成がイケてない
String +のコード生成
String s = “aaa” + hoge + foo
↓
StringBuilder s$sb = new StringBuilder();
s$sb.append(“aaa”).append(hoge).append(foo);
String s = s$sb.toString();
String +のコード生成
● 将来のJDKでFastestStringBuilderが実装されたら
– 過去のJDKでコンパイルされたコード
● StringBuilderに強く依存
● 将来のJDKで動かしてもFastestStringBuilderが使われない
– 実際にこれは過去にあったこと
● StringBufferからStringBuilderに
– 全てのコードをコンパイルし直す必要
●
コンパイラのメンテナンスコスト大
– コード生成処理って,地獄・・・
invokedynamicを使う
public java.lang.String m(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/lang/String;
flags: ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
0: aload_1
1: iload_2
2: invokedynamic #5, 0 // InvokeDynamic
#0:makeConcatWithConstants:(Ljava/lang/String;I)Ljava/lang/String;
7: areturn
invokedynamicを使う
●
ライブラリが文字列連結
● 将来のJDKでFastestStringBuilderが実装された
ら
– 過去のJDKでコンパイルされたコード
● FastestStringBuilderが使われる
– コンパイルし直す必要なし!
懸念点
● Android N未満だと動かなくなるかも?
– invokedynamic解釈できない
– -XdstringConcat=inline でレガシーバイトコード生成
8位
匿名クラスにダイアモンド演算子
が使えない!
匿名クラス+ダイアモンド演算子
List<String> list = new ArrayList<String>() {{
add(“hoge”);
}};
// JAX-RS client
List<String> res = target.get(new GenericType<String>(){});
使えるようになります
List<String> list = new ArrayList<>() {{
add(“hoge”);
}};
// JAX-RS client
List<String> res = target.get(new GenericType<>(){});
7位
Javadocイケてない!
検索もできない!
HTML4で時代遅れ!
検索できるようになります!
検索できるようになります!
モジュールがトップに表示
●
頑張ってどのパッケージがどのモジュールに属すか
覚えましょう
6位ぐらい
Deprecated意味ない,情報少ない
@Decprecated
@Deprecated
public void stop() {…}
● どういうDeprecated???
– いつDeprecatedになったの???
– いつか削除されるの???
@Deprecatedが変わる!
@Deprecated(
forRemoval = false, // 将来削除される?
since = “1.2”) // いつからDepr.に?
public void stop() {...}
Changin Depr. In JDK
● add @Deprecated to constructors for boxed primitives (Boolean, Integer, etc.) (JDK-8145468)
● add @Deprecated(forRemoval=true) to the Runtime.traceInstructions and Runtime.traceMethodCalls
methods (JDK-8153330)
● add @Deprecated to various java.applet and related classes (JEP 289)
● add @Deprecated to java.util.Observable and Observer (JDK-8154801)
● add @Deprecated(forRemoval=true) to various superseded security APIs, including java.security.acl (JDK-
8157847), javax.security.cert and com.sun.net.ssl (JDK-8157712), java.security.Certificate (JDK-8157707),
and javax.security.auth.Policy (JDK-8157848)
● add @Deprecated to "legacy collection" implementations Dictionary, Enumeration, Hashtable, Stack, and
Vector (JDK-8145469)
● add @Deprecated to java.util.Timer and TimerTask (JDK-8154799)
● add @Deprecated to the Optional.get method (JDK-8160606)
● add @Deprecated to java.util.Date, Calendar, and related classes (JDK-8164898)
● add @Deprecated to java.lang.Compiler (JDK-4285505)
● add @Deprecated to the java.corba module
● modify already-deprecated methods Thread.destroy(), Thread.stop(Throwable), Thread.countStackFrames(),
System.runFinalizersOnExit(), and various disused Runtime and SecurityManager methods to have
@Deprecated(forRemoval=true) (JDK-8145468)
● remove @Deprecated from java.awt.Component.show and hide
警告のルールも変わる!
| API declaration site
use site | not dep. forRemoval
context | false true
+----------------------------------
not dep. | 警告 警告
forRemoval=false | 警告
forRemoval=true | 警告
@SuprressWarning
● “deprecation”
– forRemoval = falseの警告を抑制
● “removal”
– forRemoval = trueの警告を抑制
●
両方抑えたかったら
– @SuppressWarning({“deprecation”, “removal”})
jdeprscan
● jar内のDeprecatedなAPIの使用を検出
5位
Collectionのstaticファクトリー無いの不便
初期値付き不変コレクション生成
● Arrays.asList(“abc”);
● Set<String> s = Collections.unmodifiableSet(
new HashSet<>(Arrays.asList(“abc”)));
● Collections.unmodifiableSet(
new HashMap<Integer, String>() {{
put(0, “hoge”);
}});
staticファクトリーできました!
● List#of
– List.of(“abc”)
● Set#of
– Set.of(“abc”)
● Map#of
– Map.of(0, “hoge”)
– Map.ofEntries(Map.entry(0, “hoge”))
● それぞれ0〜10要素までオーバロード
– それ以上は可変長引数
●
全てイミュータブル
– 変更,追加しようとすると例外
Guava使ってるなら要らない?
4位
Stream全然便利じゃない!
Infinit Stream
Stream.iterate(1, i → i*2+3)...
Stream.generate(() → new Hoge())...
● このまま終端操作を実行すると,無限ループに
– forEach, collect, reduce
– Finite Streamにする必要がある
To Finite Stream
● limit(n)
– 先頭からn件の有限Streamに
●
これ以外に手段がない!
– ある条件を満たすまで,とか
条件でskip/limitできるように
● takeWhile(Predicate)
– 条件でlimit
– Stream.iterate(1, i → i*2+3)
.takeWhile(i → i < 100)...
● dropWhile(Predicate)
– 条件を満たす間skip
for文的Stream生成
● Stream#iterate(T t, Predicate p, T→T next)
– for (T t; p.test(t); t = next.apply(t)) {…}
– Stream.iterate(2, i → i<100, i → i*2+3)
StreamとOptionalの相互運用
● List<Optional<String>> opts = …;
● opts.stream()
.filter(Optional::isPresent)
.map(Optional::get)
.・・・
StreamとOptionalの相互運用
● List<Optional<String>> opts = …;
● opts.stream()
.flatMap(Optional::stream)
.・・・
その他
● Stream<LocalDate> LocalDate.datesUntil(
LocalDate endExclusive)
● Stream<LocalDate> LocalDate.datesUntil(
LocalDate endExclusive, Period step)
● Stream<String> Scanner.tokens()
● Stream<MatchResult> Scanner.findAll(Pattern pattern)
● Stream<MatchResult> Matcher.results()
3位
Javaのバージョン意味不明
いままでのJavaバージョン
● JDK 7 Update 55
–
● JDK 7 Update 60
–
いままでのJavaバージョン
● JDK 7 Update 55
– セキュリティーアップデート(CPU)
● JDK 7 Update 60
– マイナーアップデート
●
どちらも同じセキュリティーパッチが入っている
バージョンスキームが変わります
● Java $MAJOR.$MINOR.$SECURITY
– Java 9.1.3
● Java9
● マイナーバージョンアップ1回
● セキュリティー3回
● -$PRE+$BUILD-$OPT
– -$PRE: eaとかの情報
– +$BUILD: ビルドナンバー
– -$OPT: 追加のビルド情報,日付など
Runtime.Versionクラス
Runtime.Version version = Runtime.version();
int major = version.major();
int minor = version.minor();
int security = version.security();
バージョンスキームに依存するコードは
動かなくなるかも!
● System.getProperty("java.version") => "9"
● System.getProperty("java.version").charAt(3)
– 例外に!!
2位
● ちょっとしたAPIの確認面倒くさい!
● もっと気軽にJava書きたい!
jshell; Java REPL Tool来る!
jshell> Runtime.version()
$8 ==> 9-ea+122
jshell> $8.major()
$9 ==> 9
jshell> $8.minor()
$10 ==> 0
jshell> $8.pre()
$11 ==> Optional[ea]
jshell>
10のJava9で変わるJava8の嫌なとこ!
1位
パッケージ管理イケてない!
クラスパス地獄
public is too public
モジュール化(Jigsaw)
// module-info.java
module mymodule {
requires java.compiler;
// java.compilerというモジュールを利用
// java.compilerモジュールファイルで
// exportされているパッケージ内のpublicクラスが利用可
exports com.mymodule.util;
// com.mymodule.util内のpublicクラスを他モジュールが利用可に
}
モジュール化すると・・・?
●
クラスパスの指定がほぼ要らなくなる
– modulepathを指定する
● ディレクトリ1つだけ
● public classの可視性を管理できる
⇔今まで使用してた内部APIにアクセスできなくなる!?
10のJava9で変わるJava8の嫌なとこ!
他にも
● HTTP2.0
● Compact Strings
● VarHandle
● G1GCデフォルト化
– CMSがDeprecatedに
● javacの-releaseオプション
● Applet APIがDeprecatedに
More Future(Java 10〜)
● ローカル変数でvalが!
– val hoge = “hoge”;
●
ジェネリクスの特殊化
– List<int> ints;
●
値型
– 構造体みたいなの
– メモリ使用量削減
● Foreign Function Interface

More Related Content

What's hot (20)

PDF
GraalVM Native and Spring Boot 3.0
MoritzHalbritter
 
PDF
困らない程度のJDK入門
Yohei Oda
 
PDF
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
MicroAd, Inc.(Engineer)
 
PPTX
Exploring the power of Gradle in android studio - Basics & Beyond
Kaushal Dhruw
 
PPT
Jpa
Manav Prasad
 
PDF
Introduction to Java 11: Support and JVM Features #jjug
Yuji Kubota
 
PPTX
Spring boot Introduction
Jeevesh Pandey
 
PDF
Oracle GoldenGate アーキテクチャと基本機能
オラクルエンジニア通信
 
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
PPT
Java EE and Spring Side-by-Side
Reza Rahman
 
PPTX
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
Takahiro YAMADA
 
PDF
Open Liberty / WebSphere Liberty
Takakiyo Tanaka
 
PPTX
Metaspace
Yasumasa Suenaga
 
PDF
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
ssuser070fa9
 
PDF
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
オラクルエンジニア通信
 
PPTX
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
PDF
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
オラクルエンジニア通信
 
PDF
Jakarta CDI 4.0
Satoshi Kubo
 
PPTX
ぼくがAthenaで死ぬまで
Shinichi Takahashi
 
PDF
平成最後の1月ですし、Databricksでもやってみましょうか
Ryuichi Tokugami
 
GraalVM Native and Spring Boot 3.0
MoritzHalbritter
 
困らない程度のJDK入門
Yohei Oda
 
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
MicroAd, Inc.(Engineer)
 
Exploring the power of Gradle in android studio - Basics & Beyond
Kaushal Dhruw
 
Introduction to Java 11: Support and JVM Features #jjug
Yuji Kubota
 
Spring boot Introduction
Jeevesh Pandey
 
Oracle GoldenGate アーキテクチャと基本機能
オラクルエンジニア通信
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
Java EE and Spring Side-by-Side
Reza Rahman
 
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
Takahiro YAMADA
 
Open Liberty / WebSphere Liberty
Takakiyo Tanaka
 
Metaspace
Yasumasa Suenaga
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
ssuser070fa9
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
オラクルエンジニア通信
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
オラクルエンジニア通信
 
Jakarta CDI 4.0
Satoshi Kubo
 
ぼくがAthenaで死ぬまで
Shinichi Takahashi
 
平成最後の1月ですし、Databricksでもやってみましょうか
Ryuichi Tokugami
 

Viewers also liked (13)

PPT
Java9新機能概要
HonMarkHunt
 
PDF
Java9 and Project Jigsaw
takezoe
 
PDF
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
 
PPTX
Cloud formation デザイナーで捗ろう
koki abe
 
PDF
Migration from Swing to JavaFX
Yuichi Sakuraba
 
PDF
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
Amazon Web Services Japan
 
PPTX
ナウなヤングにCloud Formationが流行ってほしい
Sugawara Genki
 
PPTX
Project Jigsaw #kanjava
Yuji Kubota
 
PDF
Prepare for Java 9 #jjug
Yuji Kubota
 
PPTX
Solving anything in VCL
Fastly
 
PDF
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
Ryosuke Uchitate
 
PDF
Java9を迎えた今こそ!Java本格(再)入門
Takuya Okada
 
PPTX
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Kohei Saito
 
Java9新機能概要
HonMarkHunt
 
Java9 and Project Jigsaw
takezoe
 
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
 
Cloud formation デザイナーで捗ろう
koki abe
 
Migration from Swing to JavaFX
Yuichi Sakuraba
 
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
Amazon Web Services Japan
 
ナウなヤングにCloud Formationが流行ってほしい
Sugawara Genki
 
Project Jigsaw #kanjava
Yuji Kubota
 
Prepare for Java 9 #jjug
Yuji Kubota
 
Solving anything in VCL
Fastly
 
ユニットテストのアサーション 流れるようなインターフェースのAssertJを添えて 入門者仕立て
Ryosuke Uchitate
 
Java9を迎えた今こそ!Java本格(再)入門
Takuya Okada
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Kohei Saito
 
Ad

Similar to 10のJava9で変わるJava8の嫌なとこ! (20)

PDF
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
 
PDF
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
 
PDF
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
 
KEY
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
 
PDF
Scala2.8への移行
guest5f4320
 
PDF
Scala2.8への移行
Takeda Hiroyuki
 
PDF
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
 
PDF
Head toward Java 15 and Java 16
Yuji Kubota
 
PDF
What is java_se_7
TakumiIINO
 
PPT
Java 7
Tetsuya Yoshida
 
PDF
今年はJava進化の年!今知っておくべき新しいJava
Takashi Ito
 
PDF
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
 
PPT
G*workshop sendai 20100424(v2)
Nobuhiro Sue
 
KEY
Java7再入門講座
Takafumi Yoshida
 
PPTX
Project lambda
Appresso Engineering Team
 
PDF
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
 
PDF
The Why and How of Java8 at LINE Fukuoka
Youhei Nitta
 
PDF
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
 
PDF
ATN No.2 Scala事始め
AdvancedTechNight
 
PDF
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
 
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
 
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
 
Scala2.8への移行
guest5f4320
 
Scala2.8への移行
Takeda Hiroyuki
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
 
Head toward Java 15 and Java 16
Yuji Kubota
 
What is java_se_7
TakumiIINO
 
今年はJava進化の年!今知っておくべき新しいJava
Takashi Ito
 
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
 
G*workshop sendai 20100424(v2)
Nobuhiro Sue
 
Java7再入門講座
Takafumi Yoshida
 
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
 
The Why and How of Java8 at LINE Fukuoka
Youhei Nitta
 
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
 
ATN No.2 Scala事始め
AdvancedTechNight
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
Ad

More from bitter_fox (10)

PDF
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
 
PDF
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
 
PDF
きつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjava
bitter_fox
 
ODP
JavaOne2014サンフランシスコ報告会in大阪
bitter_fox
 
PDF
Brand new Data Processing - StreamAPI
bitter_fox
 
PDF
徹底解説!Project Lambdaのすべて in Fukuoka #j8fk
bitter_fox
 
PDF
徹底解説!Project Lambdaのすべて リターンズ[祝Java8Launch #jjug]
bitter_fox
 
PDF
RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)
bitter_fox
 
PDF
Lt (コピー)
bitter_fox
 
PDF
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
bitter_fox
 
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
 
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
 
きつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjava
bitter_fox
 
JavaOne2014サンフランシスコ報告会in大阪
bitter_fox
 
Brand new Data Processing - StreamAPI
bitter_fox
 
徹底解説!Project Lambdaのすべて in Fukuoka #j8fk
bitter_fox
 
徹底解説!Project Lambdaのすべて リターンズ[祝Java8Launch #jjug]
bitter_fox
 
RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)
bitter_fox
 
Lt (コピー)
bitter_fox
 
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
bitter_fox
 

Recently uploaded (10)

PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 

10のJava9で変わるJava8の嫌なとこ!