How Java got all the defaults wrong (nullable references, mutable fields, non-private visibility, etc.) and still succeeded
How Java got all the defaults wrong (nullable references, mutable fields, non-private visibility, etc.) and still succeeded
5 things you should know about pattern matching that are more general than type patterns with `instanceof`
5 things you should know about pattern matching that are more general than type patterns with `instanceof`
Type pattern details - why, how, what for (now and later)?
Type pattern details - why, how, what for (now and later)?
Primitive classes (formerly known as value types) are coming
Primitive classes (formerly known as value types) are coming
The path towards better serialization
11 new features in #Java16
What exact APIs are internal (with regards to strong encapsulation)?
What exact APIs are internal (with regards to strong encapsulation)?
A tour of JEPs 400-409
Java's core principles that make it so well-suited to writing safe, useful, performant, and maintainable code (as per John Rose)
Java's core principles that make it so well-suited to writing safe, useful, performant, and maintainable code (as per John Rose)
How bounded type parameters (like `<T extends Number>`) work and when to (not) use them
How bounded type parameters (like `<T extends Number>`) work and when to (not) use them
10 things that make Java quicker than you think - from var to records, from collection factories to HTTP/2 client, from jshell to script support
10 things that make Java quicker than you think - from var to records, from collection factories to HTTP/2 client, from jshell to script support
Recent & upcoming changes to networking in the JDK: reactive HTTP/2, refactoring for Loom, Unix domain sockets, HTTP/3
Recent & upcoming changes to networking in the JDK: reactive HTTP/2, refactoring for Loom, Unix domain sockets, HTTP/3
JEP 406 - part I: Pattern matching in `switch` statements and expressions
JEP 406 - part II: Improved `null`-handling in `switch` (all of them, not just for pattern switches).
JEP 406 - part II: Improved `null`-handling in `switch` (all of them, not just for pattern switches).
Why do Java's text block start with """ *and* a newline?!
Why do Java's text block start with """ *and* a newline?!
JEP 406 - part III: How guarded patterns allow refining patterns elegantly in `switch` and elsewhere.
JEP 406 - part III: How guarded patterns allow refining patterns elegantly in `switch` and elsewhere.
What Project Valhalla is really about.
Improvements to the random (number) generator API.
Improvements to the random (number) generator API.
11 #Java tricks
#JDK18 feature list
Concurrency vs parallelism
A primer for "structured concurrency"
Some practical experiments with virtual threads and structured concurrency
Some practical experiments with virtual threads and structured concurrency
Why Java erases generic type information
How to embed compiled and tested code in Javadoc
How to embed compiled and tested code in Javadoc
#JDK 18 features
How frameworks/libraries can better support modules
How frameworks/libraries can better support modules
A two-tweeter on stable sorting
How to prepare for virtual threads
Having fun with stupid opinions, conference photos, and memes
Why #Java19 is gonna be an amazing release
What is data-oriented programming?
Sequenced collections proposal
String template proposal
Announcements at #JavaOne 2022
24 Java features you missed in 2022