JEP: JDK Enhancement Proposal
Java 21
430: String Templates (Preview)
431: Sequenced Collections
439: Generational ZGC
440: Record Patterns
441: Pattern Matching for switch
442: Foreign Function & Memory API (Third Preview)
443: Unnamed Patterns and Variables (Preview)
444: Virtual Threads
445: Unnamed Classes and Instance Main Methods (Preview)
446: Scoped Values (Preview)
448: Vector API (Sixth Incubator)
449: Deprecate the Windows 32-bit x86 Port for Removal
451: Prepare to Disallow the Dynamic Loading of Agents
452: Key Encapsulation Mechanism API
453: Structured Concurrency (Preview)
Slide 8
Slide 8 text
Project Amber
Slide 9
Slide 9 text
Project Amber
言語仕様の改良と拡張を行うプロジェクト
286: Local-Variable Type Inference (var) (10)
323: Local-Variable Syntax for Lambda Parameters (11)
361: Switch Expressions (14)
378: Text Blocks (15)
394: Pattern Matching for instanceof (16)
395: Records (16)
409: Sealed Classes (17)
440: Record Patterns (21)
441: Pattern Matching for switch (21)
仕様策定完了
Slide 10
Slide 10 text
Project Amber
言語仕様の改良と拡張を行うプロジェクト
仕様策定中
447: Statements before super()
455: Primitive types in Patterns, instanceof, and switch
456: Unnamed Variables & Patterns
459: String Templates
463: Implicitly Declared Classes and Instance Main Methods
Slide 11
Slide 11 text
Project Amber
型
395: Records
409: Sealed Classes
447: Statements before super()
(Preview)
361: Switch Expressions
394: Pattern Matching for instanceof
440: Record Patterns
441: Pattern Matching for switch
455: Primitive types in Patterns, instanceof,
and switch (Preview)
456: Unnamed Variables & Patterns
パターンマッチング
286: Local-Variable Type Inference (var)
323: Local-Variable Syntax for Lambda Parameters
378: Text Blocks
459: String Templates (2nd Preview)
463: Flexible Main Methods and Anonymous Main Classes (2nd Preview)
その他
Slide 12
Slide 12 text
Project Amber
型
395: Records
409: Sealed Classes
447: Statements before super()
(Preview)
361: Switch Expressions
394: Pattern Matching for instanceof
440: Record Patterns
441: Pattern Matching for switch
455: Primitive types in Patterns, instanceof,
and switch (Preview)
456: Unnamed Variables & Patterns
パターンマッチング
286: Local-Variable Type Inference (var)
323: Local-Variable Syntax for Lambda Parameters
378: Text Blocks
459: String Templates (2nd Preview)
463: Flexible Main Methods and Anonymous Main Classes (2nd Preview)
その他
Slide 13
Slide 13 text
Records
イミュータブルなデータを表すデータ専用クラス
例 座標を表すクラス Boilerplate
参考文献
InfoQ: Data Oriented Programming in Java
https://www.infoq.com/articles/data-oriented-programming-java/
JavaOne 2022: Data Oriented Programming in Java
https://youtu.be/UQAw3pvZPCY?si=5SiP6O0o8i6EWsyi
https://slides.com/kawasima/truth-of-data-oriented-programming
データ指向プログラミングの真実をお話しします
Slide 43
Slide 43 text
Project Amberで変わる
Javaのプログラミングスタイル
櫻庭 祐一
Java in the Box