Speaker Details

José Paumard
José Paumard

José is a Java Developer Advocate at Oracle. He holds a PhD in applied mathematics and computer science. He has been an assistant professor at the University Sorbonne Paris Nord for 25 years. He is an active member of the Paris Java User Group, and a disorganizer of the JChateau unconference. He contributes Java learning content on the dev.java website. He publishes "Java Coding Tips", a biweekly series of shorts, and the "JEP Café", a video series, both on the Java YouTube channel.

Using streams everywhere: is that really a good idea? Certainly, stream code is often much clearer and more concise than iteration over a collection. But sometimes a stream solution requires a complex combination of collectors, reduction over a primitive stream, or nested FlatMap operations, and the verdict isn’t so obvious. In this talk, we’ll look at some sample use cases, evolve the best solutions we can, in both imperative and functional styles, and then argue over which is better. You’ll get a vote too!

This session is for everyone who needs to write code in Java for bulk data processing – every Java developer, in fact. You’ll leave hopefully entertained, and with a better idea of the use cases where streams excel, and where you’re better staying with old-fashioned ways.

More

Using the off-heap memory to store and process large amounts of data didn't change in Java since Java SE 4, when ByteBuffer was introduced. Since then, operating systems moved from 32 bits to 64 bits, and the available RAM in a regular machine moved from megabytes to gigabytes, and more. Another API was much needed, as a ByteBuffer is a 32 bits buffer, not enough for modern applications. First published as a preview feature in Java SE 19, the Foreign Function and Memory API made it as a final feature in Java SE 22. The Memory part brings several new concepts. Among them Arenas and MemorySegments now give you the possibility to manage gigabytes of contiguous off-heap memory, with a very elegant layout model. On the other hand, MemoryLayout allows for a C-struct like organization of your data in memory. 

This presentation shows you this complex API, in a step by step approach. It explains how your data is organized and aligned in memory, and the impact it has on the API. It also focuses on the delicate use of VarHandle, a critical element to access your data. It then shows you how you can load large files in memory segments, and shows you the performance you can get in the processing of billions of data elements.

More

Data Oriented Programming is a programming model, and an alternative to Object Oriented Programming, that allows you to organize your application code differently. It uses records, sealed types, exhaustive switch expressions, and pattern matching. This hands-on lab gives you a simple application as a starting point, and uses a step by step approach to guide you through the refactoring, following the principles of Data Oriented Programming. By the end of this workshop, you will gain a better understanding of Data Oriented Programming, and how and where you can apply its principles in your application.

More

Searching for speaker images...