New (Sequenced) Collections In Java 21 - Inside Java Newscast #45#videoAll lists, some sets, and some maps have an encounter order, but the collections framework has no type to capture this property and define operations like getting or removing first and last elements or iterating in reverse order. Sequenced collections will fix that in Java 21.
The Holy Grail of Java Performance - Inside Java Newscast #43#videoThe goal of Project Leyden is to improve the startup time, time to peak performance, and footprint of Java programs. Project lead Mark Reinhold recently proposed to extend the Java programming model with features for selectively shifting and constraining computation with condensors. Let's look at his white paper and roadmap.
Prepare Your Code Bases For Future Java - Inside Java Newscast #41#videoWhat do the security manager, applet API, finalization, and primitive wrapper constructors have in common? What about CMS, Nashorn, RMI activation, and biased locking? And what does jdeprscan have to do with all of this?
Java's Plans for 2023 - Inside Java Newscast #40#videoA summary of what happened in 2022 and what will probably happen in 2023 for Projects Amber, Galahad & Leyden, Lilliput, Loom, Panama, and Valhalla
24 Java Features You Missed In 2022 - Inside Java Newscast #39#videoJDK 18 and JDK 19 preview a number of big ticket features but they also come with a lot of smaller improvements. Here are 24 less-known features that were added to Java in 2022. Among them additions to
HashMap, Security and GC improvements, Custom Localized Date-Time Formats and an Internet Address Resolution SPI, and much more.
GraalVM In OpenJDK And More JavaOne Announcements - Inside Java Newscast #36#videoOracle will contribute GraalVM's just-in-time compiler and native image technology to OpenJDK. It will also create EA and GA builds for JavaFX 20+ and is hard at work at creating generational ZGC to vastly improve ZGC's already impressive performance. And then there's the Java SE Subscription Enterprise Performance Pack, a drop-in replacement for JDK 8 with JDK 17 performance.
The Simplest Hello World - Inside Java Newscast #35#videoVisibility, classes, methods, instance and static members, parameters - a newcomer to programming needs to learn all of these concepts to truly understand a simple hello-world program in Java. Time to make that simpler and cut down on what needs to be known up front.
Loom in the Java Ecosystem - Inside Java Newscast #34#videoAmong other things, Java 19 ships with virtual threads, structured concurrency APIs, sealed types, and pattern matching in
switch- all of them as previews, but still very cool! I'm using these features here to create a GitHub crawler.
Java 19 in Action - Inside Java Newscast #33#videoAmong other things, Java 19 ships with virtual threads, structured concurrency APIs, sealed types, and pattern matching in
switch- all of them as previews, but still very cool! I'm using these features here to create a GitHub crawler.
String Templates, JavaFX 19, Deserialization, and more at JavaOne - Inside Java Newscast #32#videoString templates make it easy and safe to embed variables and expressions in strings; JavaFX 19 comes with many improvements, chief among them derived observables; and the deserialization filter can keep apps safe from certain attacks. More on all of this at JavaOne!
Sequenced Collections, Purity, and more at JavaOne - Inside Java Newscast #31#videoSequenced collections introduce an abstraction for collections with a known encounter order like all lists and some sets and maps. It will be easy to add, get, or remove the first and last elements and to iterate or stream in reverse order. We're also discussing immutable collections and pure functions. More on all of this at JavaOne!
Java Q&A - Inside Java Newscast #30#videoWe asked you for questions on YouTube, Reddit, and Twitter and are here to answer a bunch of them. From projects Amber to Valhalla, Leyden to Lilliput, from language to performance, from the immediate future to pipe dreams we covered a lot of ground.
Data-Oriented Programming - Inside Java Newscast #29#videoData-oriented programming focuses on modeling data as data (instead of as objects). Records for data and sealed types for alternatives let us model immutable data where illegal states are unrepresentable. Combined with pattern matching we get a safe, powerful, and maintainable approach to ad-hoc polymorphism that lets us define operations on the data without overloading it with functionality.
What is OpenJDK? - Inside Java Newscast #28#videoWhat's "OpenJDK" (or "the OpenJDK"?), how does it work, and what does it do? Here's the answer to these questions as well as explorations of JDK Enhancement Proposals, the Java Community Process, why there are so many JDK providers, and how long-term support works.
Java 19 - The Best Java Release? - Inside Java Newscast #27#videoJava 19 is the first release to preview Project Loom's virtual threads and structured concurrency, Project Amber's record patterns, and Project Panama's foreign memory and function APIs. It also continues previews of pattern matching in switch and vector API. Put together, this makes it the most groundbreaking Java release in years and probably for years to come!
Deconstructing Records in Pattern Matching - Inside Java Newscast #26#videoHow record patterns use records' transparency to safely deconstruct them in pattern matching, allowing us to separate checking structure and value of data from processing it.
News Grab Bag: Loom Virtual Threads, Lilliput, Pattern Matching, ... - Inside Java Newscast #25#videoProject Loom's virtual threads are merged and ship with JDK 19 - here's to prepare for them. Also, news on Project Lilliput, proposal for record patterns in pattern matching, some astonishing numbers from Sonatype on Maven Central, and the move of OpenJDK to openjdk.org.
JEP 427 proposes two changes to pattern matching in switch: 1. Guarded patterns, which belonged to patterns, are replaced with when clauses, which belong to the case. 2. null needs to be handled by a specific case null.
nullIn Pattern Matching - Inside Java Newscast #24#video
Virtual Thread Deep Dive - Inside Java Newscast #23#videoNow that Project Loom's JEP 425 officially proposes virtual threads, it's time to take a close look at them: scheduling and memory management; mounting, unmounting, capturing, and pinning; observability; and and what you can do for optimal scalability - this episode has (almost) everything on virtual threads!
All About JDK 18 - Inside Java Newscast #21#videoRefinements in pattern matching and Panama's foreign and vector APIs; a new command
jwebserverand a new IP address resolution SPI; preparing code for UTF-8 becoming the default character set and for the eventual removal of finalization; and a few more bits and pieces.
State of Pattern Matching with Brian Goetz#videoConversation with Project Amber lead Brian Goetz about pattern matching in Java: Why
Map::getshould be a pattern, the linear thinking trap and how it impacts null handling in pattern matched, exhaustiveness in switch statements and the rehabilitation of
Compiled And Tested Code In Javadoc - Inside Java Newscast #20#videoShort code snippets in Javadoc are a great way to document an API, but they're brittle. JDK 18 / JEP 413 solves that problem by allowing us to reference snippets from external files that are compiled and tested.
Where to use Optional - Inside Java Newscast #19#videoIs it ok to use
Optionalas parameter type? Overloading is an alternative, but how well does it stack up? Thoughts on this question (and other
Optional-related ones) can usually be put into one of three (and a half) categories.
Java's Plans for 2022 - Inside Java Newscast #18#videoAn update on Java's four key projects: Valhalla, Panama, Loom, and Amber - what they're about, where they are right now, and what their plans are for 2022 and beyond.
Project Loom Brings Structured Concurrency - Inside Java Newscast #17#videoProject Loom aims to bring structured concurrency to Java, a concept that compares to "regular" concurrency like structured programming compares to GOTO-programming - let's dip our toes into this new concept. Also: JDK 18 feature freeze, JDK migration guide, and nifty things to do with the new simple web server.
What Happens to Finalization in JDK 18? - Inside Java Newscast #15#videoFinalization was part of Java from day one to help developers manage resources but it turns out that it's really not good at that. Here's why and what's gonna happen next. Also, reflection and method handles.
11 Tricks From dev.java - Inside Java Newscast #14#videoFrom compact record constructors to boolean expressions in pattern matching, from generic wildcards to chaining predicates and comparators, from jpackage to jlink - here are 11 Java tricks handpicked from dev.java.
Faster LTS and free JDK with Java 17 - Inside Java Newscast #12#videoJava 17 comes with more than just new features. A faster LTS cadence and free Oracle JDK make this the best-supported modern release ever.
The State of Project Valhalla with Brian Goetz#videoConversation with Project Valhalla lead Brian Goetz about Java's original sin, unifying the type system, expanding generics, current work, the project timeline, and more.
Fast and Secure Inter-process Communication on JDK 16 - Inside Java Newscast #11#videoJDK 16's socket channel / server-socket channel API can use Unix domain sockets for faster and more secure inter-process communication on the same host - also: JDK 17 final release candidate and Oracle Developer Live
Random Numbers and JDK Flight Recorder - Inside Java Newscast #9#videoThe new API for random number generation in Java 17 - why it needed to change and how the new API is more usable, extensible, and robust - and how to get started with JDK Flight Recorder, particularly on Java 16.
Incremental Evolution, Pattern Switches vs Visitor Pattern, and Wayland Support - Inside Java Newscast #8#videoHow the six-month release cadence enabled a more incremental evolution of the Java platform and how pattern switches and sealed classes are an alternative to the visitor pattern. Also, maybe Wayland support for Java.
nulland Upgrading Past Java 8 - Inside Java Newscast #7#video
nullis never fun, so in this newscast, I explain how to best handle it, what tools can do, and how recent and upcoming language changes help dealing with it. I'll also look at a recent blog post about how Netflix upgraded from Java 8 to 16.
The State of Project Panama with Maurizio Cimadamore#videoConversation with Project Panama lead Maurizio Cimadamore about the project's core mission, the split into foreign-memory access and foreign linker APIs, jextract, performance, interaction with Project Valhalla, the timeline, and more.
The State of Project Loom with Ron Pressler#videoConversation with Project Loom lead Ron Pressler about the project's core mission, challenges like interaction with debuggers and garbage collectors, the timeline for the next steps, compatibility and more.
Java 17: Features and Development - Inside Java Newscast #6#videoJava 17, the next long-term support release, enters feature freeze and the release preparations begin today (June 10th). A good time to take a closer look at the list of JEPs as well as the development process.
Pattern Matching in Switches and Security Manager Deprecation - Inside Java Newscast #5#videoJEP 406, which is a candidate for Java 17, introduced pattern matching in
switchstatements and expressions, introduces guarded patterns, and improves null handling. Then we need to talk about JEP 411's deprecation of the security manager.
5 Secret Java API Tricks and Record Semantics - Inside Java Newscast #4#videoFive nifty Java API features that you need to know (and many more in the linked thread) and a quick explanation why Java records are not about reducing boilerplate.
JUnit Pioneer - An Exploratory Mission to Jupiter And Beyond#videoFrom growing a community on Twitch to strong documentation, from squashing commits to one-click releases - this presentation covers JUnit Pioneer in all detail
Quicker Java and JDK 16 compatibility - Inside Java Newscast #3#videoA walk through language features, APIs, and JDK capabilities that make Java quicker to use with less ceremony and more immediate results. Also, a rundown of some of the projects with all tests green on JDK 16.
Java Generics III - Wildcards#videoSecond part of a short series on Java Generics - this one explains generics.
? extends Number- that kinda thing.
Java Generics II - Bounded Type Parameters#videoSecond part of a short series on Java generics - this one explains bounded type parameters.
T extends Number- that kinda thing.
Vector API, Record Serialization, And Java 17 Release Schedule - Inside Java Newscast #2#videoShort introduction to the Vector API (incubating in JDK 16) and an update on serializing records. Also, a quick mention of JEP 356 in JDK 17 and the proposed release schedule.
Java 16 Rundown, First Of Java 17 - Inside Java Newscast #1#videoJava 16 got released, so I go over most of the additions like records, Stream APIs, Unix Domain Socket support, and much more. Then there's a first glimpse at Java 17.
Patterns,Project Amber brings new patterns and puts them into
switch, and Valhalla's Primitive Classes - JDK News #2#video
switchwhile Project Valhalla takes off and proposes introducing primitive classes
Java's Quirks and Wrong (?) Defaults with Brian Goetz#videoMutability, nullability, serialization, primitives - Nicolai Parlog discusses with Java language architect Brian Goetz why Java is the way it is.
Pattern Matching Quartet - JDK News #1#videoA summary of four recent discussions about pattern matching on the Project Amber mailing lists
Java Generics I - The Basics#videoFirst part of a short series on Java generics - this one explains the basics
Modularity with Oliver Drotbohm#videoOliver and I discuss modularity in Java with a focus on the Java module system
How We Upgraded From Java 8 And Why You Can (And Should) Do It Too#videoMy two minutes of fame during the Oracle Code One 2019 keynote
The Java Module System with Sander Mak#videoAt J-Fall 2018 I talked to Sander Mak, modularity expert at Luminis, about the Java module system (J_MS), its adoption, how it compares to OSGi, and more.
Caliz III: Hashing scripts and background compilation#videoLetting Caliz store native images and only create them for a given Java "script" (single source file) if needed
Caliz II: Wrapping Graal AOT#videoExtending Caliz to create native images of Java "scripts" (single source files) with with Graal
Caliz I: Wrapping JVM 11 and learning about Graal AOT#videoFirst steps toward an acceptable scripting experience with single-source-file execution and Graal native images
Java 12 Experiments (Live Stream)#videoIn my first live stream ever (yay!), we explored Java 12's API improvements
Utilities, Singletons and Dependency Injection - Effective Java, Items 3-5#videoMildly surprising (to me), it makes sense to discuss these three patters in one video - so here it goes
Maven 3 / 4 / 5 with Robert Scholte#videoMaven is one of the cornerstones of the Java ecosystem - here I talk with Robert Scholte, Chairman of the Apache Maven projects
First Contact with Switch Expressions in Java 12#videoWith Java 12,
switchis no longer just a statement, but becomes an expression. Let's take a look!
Use Builders... Cautiously - Effective Java, Item 2#videoWhy and how to avoid the builder pattern and how to make best use of it if you can't
Java 11: A New Dawn - Releases, Oracle JDK vs OpenJDK, and LTS#videoOracle's announcements of the six-month release cadence and new licensing caused quite a ruckus - now that things calmed down, lets discuss where we're headed
Static Factory Methods - Effective Java, Item 1#videoHow to use static factory methods to overcome three shortcomings of constructors
Kicking off a series on Effective Java, Third Edition#videoKick-off to a YouTube series on Effective Java, Third Edition - let's find some angles Josh didn't cover
First contact withHow to use
varin Java 10#video
var, where it works and where it doesn't (and why), and how it might impact readability
Welcome, Java 9!#videoJava 9 is out today and with other members of the community I'm throwing a welcome party. Get an all around view on the new Java release with various opinions, tips, and great sources!
Impressions of JavaZone 2017#videoA few impressions of my stay at JavaZone 2017 to music from WillRock
Parameterized Tests in JUnit 5#videoAt JavaLand 2017, I spent 15 minutes exploring JUnit 5's (then) brand-new parameterized test feature in a NightHacking session