Logo der Java User Group Karlsruhe. Auf dem Bild ist der Java Duke zu sehen und im Hintergrund die Fächerstadt Karlsruhe.


JavaDay

Datum:
16.10.2025, 15:45

Am 16.10.2025 ist es wieder soweit: Der JavaDay bringt euch spannende Insights und geballtes Know-how aus der Welt von Java!

Ablauf

  • 1545 Einlass
  • 1600 Vortrag 1: Java 25 - Better Language, Better APIs, Better Runtime mit Nicolai Parlog
  • 1700 Snacks
  • 1730 Vortrag 2: Gatherer mit Karl Heinz Mairbaise
  • 1830 Essen & Lightning Talks mit Johannes Bechberger und Marc Philipp
  • 1930 Vortrag 3: Java Tricks – Tipps & Kniffe für den Alltag mit Adam Bien
  • 2030 Remote Q&A mit Brian Goetz
  • 2100 Snacks

Java 25 - Better Language, Better APIs, Better Runtime mit Nicolai Parlog

Java 25 ist nächste Release mit Langzeitunterstützung und seit dem letzten ist jede Menge passiert:

  • von Unnamed Patterns und flexibleren Konstruktoren zu Modulimporten
  • von der Foreign Function & Memory API zu Strema Gatherers und der Class-File API
  • von einer einfacheren Main-Methode zum direkten Start von Quellcode
  • von Markdown in JavaDoc zu quantenresistenter Verschlüsselung
  • von schnelleren Starts zu verbesserter Garbage Collection

Ob neu, verbessert oder finalisiert - es gibt jede Menge Features in der Sprache, der Standardbibliothek und der Laufzeit zu besprechen. Also machen wir genau das!

Stream Gatherer mit Karl Heinz Mairbaise

Als Teil der JEPs 461(JDK 22), 473(JDK 23) und JEP 485 in OpenJDK 24, ist nun eine interessante Erweiterung der Stream API final integriert worden. Die sogenannten Stream-Gatherers.

Die Stream-Gatherer erweitern die Stream API, um funktionalitäten, wo bisher einige Limitierungen existierten, die zwar lösbar sind, aber nicht notwendigerweise zu einfachem und Maintainbaren Code führten.

Der Vortrag gibt einen detaillierten Einblick in die Idee und Anwendung von Stream Gatherern. Welches Problem lösen Stream Gatherer? Wie unterscheiden sich Stream Gatherer von Collectoren? Welche Möglichkeiten bieten Stream Gatherer. Anhand von Beispielen werden die verschiedenen Nutzungsaspekte veranschaulicht.

Wie kann zum Beispiel eine flexiblere distinctBy-Funktion erstellt werden? Ein indizierter Stream? Ein gleitendes Fenster auf den Streamdaten? Die Erstellung von Gruppen auf den Streamdaten und vieles mehr.

Lernziele:

  • Integration und Differenzierung von Collectors.
  • Einsatzmöglichkeiten von Stream Gatherern.
  • Verstehen, wie Stream Gatherer funktionieren.
  • Vorstellung einiger Beispielimplementierungen.
  • Vergleich mit anderen Lösungen.

Real World Lean Java Practices, Patterns, Hacks, and Workarounds mit Adam Bien

Many projects still rely on assumptions from the 1990s and the JDK 1.X, such as extensive decoupling, obligatory abstractions and prioritising data objects over business logic. This session focuses on practical, no-nonsense design and simple code. We will explore lean Java practices and patterns that eliminate unnecessary complexity and increase productivity, including the use of LLMs.

Starting with backend monoliths and microservices, we will look at how to structure and organise them, before moving on to testing, decoupling, abstractions, data-oriented programming, automation using pure Java, and the effect of LLM assistants on design and code structure. Your questions and scenarios are not only welcome — they’re essential!

Lightning Talk: Java 25’s neuer CPU-Time Profiler mit Johannes Bechberger

Wenn deine Java-Anwendung langsam ist, solltest du einen Java-Profiler einsetzen. Vor JDK 25 erlaubte der eingebaute Java-Profiler allerdings nur Profiling basierend auf der Ausführungszeit, nicht auf der CPU-Zeit, und das ist nicht dasselbe. Eine Methode, die auf I/O blockiert, und eine, die rechenintensiv arbeitet, können gleich aussehen … es sei denn, du nutzt CPU-time profiling, das dir zeigt, was deine CPU wirklich auslastet.

In diesem kurzen Talk stelle ich dir den neuen CPU-time Profiler in JDK 25 (JEP 509) vor. Du erfährst, warum traditionelle JFR-Execution-Time- Profile in die Irre führen können, wie CPU-time sampling unter der Haube funktioniert und wie du deine Anwendung jetzt präziser profilen kannst, ohne auf unsichere oder externe Tools angewiesen zu sein.

Egal, ob dir Performance wichtig ist oder du einfach die Durchsatz- Bottlenecks deiner App besser verstehen willst; dieser Talk vermittelt dir die Grundlagen des Profilings und zeigt, warum es mit JDK 25 einfacher ist als je zuvor.

Lightning Talk: JUnit 6.0 mit Marc Philipp

Dank des Sovereign Tech Fund hatte ich dieses und letztes Jahr die Gelegenheit, Vollzeit an JUnit zu arbeiten. In diesem Lightning Talk werde ich von meine Erfahrungen berichten und in aller Kürze die wichtigsten Neuerungen vorstellen. Dazu zählen unter anderem Open Test Reporting, parametrisierte Testklassen und Discovery Issues.

Adam Bien

Developer (Architect), Consultant, Trainer, Podcaster (https://airhacks.fm), and Java (Champion) enthusiast Adam Bien (https://adambien.blog) has been using Java since JDK 1.0 and JavaScript since LiveScript and still enjoys writing code. Adam regularly organises Java / Web / Cloud / Architectures online live workshops https://airhacks.live and a monthly Q&A live streaming show: https://airhacks.tv.

https://adam-bien.com https://adam-bien.com

Nicolai Parlog

Nicolai (aka nipafx) ist ein Java-Enthusiast mit Fokus auf Sprachfeatures und APIs, der leidenschaftlich gerne lernt und lehrt. Das macht er in Blog Posts, Newslettern und Büchern; in Tweets, Videos und Streams; in Demo Repositories und auf Konferenzen - mehr dazu auf www.nipafx.dev. Er ist Java Developer Advocate bei Oracle und Organisator von Accento (www.accento.dev). Davon abgesehen kennt man ihn für seine Frisur.

http://www.nipafx.dev http://www.nipafx.dev

@nipafx @nipafx

Karl Heinz Marbaise

Karl Heinz Marbaise arbeitet als Freiberuflicher DevOps/Entwickler im Java Umfeld. Das beinhaltet Entwicklung in verschiedensten Bereichen (Spring Boot, JUnit Jupiter, Testcontainers). Dazu gehörtg auch die Erstellung von Werkzeugen z.B. in Java oder Go. Im Bereich des Build- und Konfigurationsmanagements (Maven, Jenkins, Nexus, Git) führt er seit Jahren Schulungen durch. In seiner Freizeit arbeitet er an verschiedenen Open-Source-Projekten, u.a. am Apache Maven Projekt. Er hält Vorträge zu verschiedenen Themen auf unterschiedlichen Veranstaltungen.

Marc Philipp

Marc Philipp hat mehr als 10 Jahre Erfahrung in der Entwicklung von Software für Unternehmen und Endanwender sowie als Trainer und Coach für andere Entwickler. Bei Gradle Inc. arbeitet er an Produkten wie Test Distribution und Predictive Test Selection mit dem Ziel, die Produktivität von Entwickler:innen zu verbessern. Er ist seit langem aktiver Committer und Maintainer von JUnit. Außerdem war er Mitinitiator der Crowdfunding-Kampagne JUnit Lambda, ohne die JUnit 5 nicht existieren würde.

Johannes Bechberger

Johannes Bechberger is a JVM developer working on profilers and their underlying technology in the SapMachine team at SAP. This includes improvements to async-profiler and its ecosystem, a website to view the different JFR event types, and improvements to the FirefoxProfiler, making it usable in the Java world. He started at SAP in 2022 after two years of research studies at the KIT in the field of Java security analyses. His work today is comprised of many open-source contributions and his blog, where he writes regularly on in-depth profiling and debugging topics, and of working on his JEP Candidate 435 to add a new profiling API to the OpenJDK.

Location


Disy Informationssysteme GmbH
Zimmerstraße 3
76137 Karlsruhe

Eine Veranstaltung des iJUG e.V., organisiert durch die JUG Karlsruhe.
Supported by

Powered by Jekyll & Git