Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Language Update: Java
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuichi.Sakuraba
September 05, 2025
Technology
480
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Language Update: Java
2025.09.06 Learn Language 発表資料
Yuichi.Sakuraba
September 05, 2025
More Decks by Yuichi.Sakuraba
See All by Yuichi.Sakuraba
Inside Stream API
skrb
1
800
Java 25に至る道
skrb
3
310
Lazy Constant - finalフィールドの遅延初期化
skrb
0
4.1k
Java 30周年記念! Javaの30年をふりかえる
skrb
4
3.8k
JavaにおけるNull非許容性
skrb
2
4k
あなたはJVMの気持ちを理解できるか?
skrb
6
34k
で、ValhallaのValue Classってどうなったの?
skrb
2
16k
Javaにおける関数型プログラミンへの取り組み
skrb
7
730
今こそ、ラムダ式を考える - なぜあなたはラムダ式を苦手と感じるのか
skrb
6
28k
Other Decks in Technology
See All in Technology
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
150
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
190
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
230
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
170
元・セキュリティ学習経験0大学生による業務紹介 / An Introduction to the Job by a Former College Student with Zero Security Training Experience
nttcom
0
1k
AWS Summit Japan 2026の振り返りと2027へ向けて / AWS Summit Japan 2026 Recap and Prospects for 2027
kaminashi
1
110
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
310
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
3
600
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
170
背中から、背中へ /paying forward to community
naitosatoshi
0
170
Agile and AI Redmine Japan 2026
hiranabe
4
520
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
120
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Navigating Weather and Climate Data
rabernat
0
250
Claude Code のすすめ
schroneko
67
230k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
610
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
350
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
We Are The Robots
honzajavorek
0
260
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
It's Worth the Effort
3n
188
29k
Transcript
Language Update Java 櫻庭 祐一
Java の作り方 https://openjdk.org/projects/jdk/ OpenJDK: JDK Project Mark Reinhold の他のプロジェクトをまとめて を開発
JDK OpenJDK Java 25 2024-09-16 Java 24 2023-03-18 半年ごとのリリース Java 21, Java 25 2 年周期 LTS Oracle は などのディストリビュータによる Note: OpenJDK LTS LTS には と非 の区別はない LTS
JEP: JDK Enhancement Proposal の機能を規定 JDK 新機能だけでなく、実装改善、機能の削除も含む Preview Standard 正式な機能
の種類 JEP Incubator Experimental 言語仕様関連 VM の実装改良 新しい API ex. Records ex. HTTP Client ex. ZGC
JEP: JDK Enhancement Proposal の機能を規定 JDK 新機能だけでなく、実装改善、機能の削除も含む Preview Standard 正式な機能
の種類 JEP Incubator Experimental 言語仕様関連 VM の実装改良 新しい API ex. Records ex. HTTP Client ex. ZGC
Java 22 423: Region Pinning for G1 454: Foreign Function
& Memory API 456: Unnamed Variables & Patterns 458: Launch Multi-File Source-Code Programs Java 23 467: Markdown Documentation Comments 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal 474: ZGC: Generational Mode by Default Java 24 472: Prepare to Restrict the Use of JNI 475: Late Barrier Expansion for G1 479: Remove the Windows 32-bit x86 Port 483: Ahead-of-Time Class Loading & Linking 484: Class-File API 485: Stream Gatherers 486: Permanently Disable the Security Manager 490: ZGC: Remove the Non-Generational Mode 491: Synchronize Virtual Threads without Pinning 493: Linking Run-Time Images without JMODs 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe 501: Deprecate the 32-bit x86 Port for Removal Java 25 470: PEM Encodings of Cryptographic Objects (Preview) 502: Stable Values (Preview) 503: Remove the 32-bit x86 Port 505: Structured Concurrency (Fifth Preview) 506: Scoped Values 507: Primitive Types in Patterns, instanceof, and switch (Third Preview) 508: Vector API (Tenth Incubator) 509: JFR CPU-Time Pro ling (Experimental) 510: Key Derivation Function API 511: Module Import Declarations 512: Compact Source Files and Instance Main Methods 513: Flexible Constructor Bodies 514: Ahead-of-Time Command-Line Ergonomics 515: Ahead-of-Time Method Pro ling 518: JFR Cooperative Sampling 519: Compact Object Headers 520: JFR Method Timing & Tracing 521: Generational Shenandoah Java 22, 23, 24はStandard JEPのみ
Java 22 423: Region Pinning for G1 454: Foreign Function
& Memory API 456: Unnamed Variables & Patterns 458: Launch Multi-File Source-Code Programs Java 23 467: Markdown Documentation Comments 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal 474: ZGC: Generational Mode by Default Java 24 472: Prepare to Restrict the Use of JNI 475: Late Barrier Expansion for G1 479: Remove the Windows 32-bit x86 Port 483: Ahead-of-Time Class Loading & Linking 484: Class-File API 485: Stream Gatherers 486: Permanently Disable the Security Manager 490: ZGC: Remove the Non-Generational Mode 491: Synchronize Virtual Threads without Pinning 493: Linking Run-Time Images without JMODs 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe 501: Deprecate the 32-bit x86 Port for Removal Java 25 470: PEM Encodings of Cryptographic Objects (Preview) 502: Stable Values (Preview) 503: Remove the 32-bit x86 Port 505: Structured Concurrency (Fifth Preview) 506: Scoped Values 507: Primitive Types in Patterns, instanceof, and switch (Third Preview) 508: Vector API (Tenth Incubator) 509: JFR CPU-Time Pro ling (Experimental) 510: Key Derivation Function API 511: Module Import Declarations 512: Compact Source Files and Instance Main Methods 513: Flexible Constructor Bodies 514: Ahead-of-Time Command-Line Ergonomics 515: Ahead-of-Time Method Pro ling 518: JFR Cooperative Sampling 519: Compact Object Headers 520: JFR Method Timing & Tracing 521: Generational Shenandoah Java 22, 23, 24はStandard JEPのみ 宣言的記法 データ指向 VM 初心者向け 安全性
Java 22 423: Region Pinning for G1 454: Foreign Function
& Memory API 456: Unnamed Variables & Patterns 458: Launch Multi-File Source-Code Programs Java 23 467: Markdown Documentation Comments 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal 474: ZGC: Generational Mode by Default Java 24 472: Prepare to Restrict the Use of JNI 475: Late Barrier Expansion for G1 479: Remove the Windows 32-bit x86 Port 483: Ahead-of-Time Class Loading & Linking 484: Class-File API 485: Stream Gatherers 486: Permanently Disable the Security Manager 490: ZGC: Remove the Non-Generational Mode 491: Synchronize Virtual Threads without Pinning 493: Linking Run-Time Images without JMODs 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe 501: Deprecate the 32-bit x86 Port for Removal Java 25 470: PEM Encodings of Cryptographic Objects (Preview) 502: Stable Values (Preview) 503: Remove the 32-bit x86 Port 505: Structured Concurrency (Fifth Preview) 506: Scoped Values 507: Primitive Types in Patterns, instanceof, and switch (Third Preview) 508: Vector API (Tenth Incubator) 509: JFR CPU-Time Pro ling (Experimental) 510: Key Derivation Function API 511: Module Import Declarations 512: Compact Source Files and Instance Main Methods 513: Flexible Constructor Bodies 514: Ahead-of-Time Command-Line Ergonomics 515: Ahead-of-Time Method Pro ling 518: JFR Cooperative Sampling 519: Compact Object Headers 520: JFR Method Timing & Tracing 521: Generational Shenandoah Java 22, 23, 24はStandard JEPのみ 宣言的記法 データ指向 VM 初心者向け 安全性
4つの方向性 宣言的記法/ データ指向 VM 初心者向け 安全性 関数型機能はひと段落 小さなObjectを扱う手法 巨大ヒープ用GCの世代別化 小さなObjectを扱う構造
起動時間短縮 今後導入予定のValue Classの露払い機能 初心者のハードルを下げる 保守できない機能の削除 セキュリティ向上
小さなObjectを扱う Mutable Huge Object Immutable Small Object Brian Goetz Project
Valhalla: Value Class (導入時期未定) Java 25までの露払い機能 JEP 484: バイトコードを操作するAPI JEP 513: オブジェクトの初期化順序の変更 JEP 519: オブジェクトヘッダーのコンパクト化 et al.
初心者のハードルを下げる お約束の記述をなるべく減らす JEP 512: メインクラスの省略 JEP 511: import文の簡略化 et al.
import java.util.stream.IntStream; public class Main { public static void main(String... args) { IntStream.range(0, 10) .forEach( i -> System.out.println("Hello, World")); } } Main.java ?
初心者のハードルを下げる お約束の記述をなるべく減らす JEP 512: メインクラスの省略 JEP 511: import文の簡略化 et al.
void main() { IntStream.range(0, 10) .forEach( i -> IO.println("Hello, World")); } Main.java
Conclusion 4 つの方向性で発展 Mutable Huge ObjからImmutable Small Objへ 初心者に優しく VMの改良と安全性の向上は永遠に続く
Language Update Java 櫻庭 祐一