Posts

Posts mit dem Label "Java" werden angezeigt.

Java 25: Die wichtigsten Features seit Version 21

Bild
Seit September 2025 gibt es das neue Java 25 LTS-Release. Neben den typischen Performance-Verbesserungen und Ressourcen-Optimierungen fallen vor allem die Vereinfachungen für Java-Neulinge auf. Mehr dazu in diesem Artikel. Java 25 Features Als neues LTS-Release bringt Java 25 einige Neuerungen im Vergleich zu Java 21 mit. Unter der Haube wurde viel optimiert, das Web-EntwicklerInnen bei der täglichen Arbeit eventuell gar nicht bemerken. Das sind zum Beispiel Optimierungen bei den Garbage-Kollektoren, der Support-Stop für 32 Bit Rechner oder mehr Unterstützung für die AOT-Kompilierung. In diesem Artikel fokussiere ich mich auf Änderungen, die auffallen. Alles Weitere findet ihr im Detail hier:  https://openjdk.org/projects/jdk/25/ Rückblick Java 21 Features Performance Tuning durch Versionsupdate Java 25 ist performanter als Java 21. Ich teste es mit einer kleinen, produktiven Spring Boot Webanwendung. Dazu starte ich die Anwendung 10 Mal mit Java 21 und 10 Mal mit Java 25. Dabei pr...

Lessons Learned – von der Idee bis zum Go-Live unseres KI-Chatbots

Bild
Erfahrungen aus der Entwicklung bei Magenta Business Die Entwicklung eines KI-Chatbots mit modernen Sprachmodellen (LLMs) war für unser Team nicht nur spannend, sondern auch lehrreich. Der Weg war gespickt mit Erfolgen, Rückschlägen und vielen Lessons Learned. Heute wird unser Chatbot aktiv von Kund:innen genutzt, aber der Weg dorthin war nicht geradlinig. In diesem Beitrag teilen wir unsere Erkenntnisse – damit andere Teams schneller und mit weniger Stolpersteinen zum Ziel kommen. KI in Java? Geht – und zwar ziemlich gut Wer KI-Anwendungen entwickeln möchte, muss nicht zwingend in Python unterwegs sein. Für Java-Teams gibt es mittlerweile sehr gute Frameworks wie Spring AI und LangChain4J , die die Anbindung von Sprachmodellen wie GPT, Claude oder Mistral deutlich vereinfachen. Selbst das Integrieren von Backend-Funktionalität oder anderer Firmen-APIs per Tool in die KI ist mit diesen Frameworks einfach. So könnt Ihr relativ leicht einfache KI Agenten bauen. Unser Tipp: Baut f...

AI Assistent mit LangChain4j und Spring Boot

Bild
LangChain4j ist ein neues und populäres Framework, um LLMs, Vektor-Datenbanken und weitere KI-Funktionen in Java Systemen zu nutzen. In diesem Artikel integrieren wir LangChain4j in eine Spring Boot Anwendung. Spring Boot mit LangChain4j Maven Dependencies Stand 22.07.2024 hat LangChain4j noch eine Nuller-Version im Maven Repository. LangChain4j integrieren wir als 3rd-Party Bibliothek in unser Spring Boot Projekt: < dependencies > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > < dependency > < groupId >dev.langchain4j</ groupId > < artifactId >langchain4j-spring-boot-starter</ artifactId > < version >0.32.0</ version > </ dependency > < dependency > < groupId >dev.langchain4j</ groupId > < artifactId >langchain4j-azure-op...

Software-Entwicklung mit KI-Hilfe von ChatGPT

Bild
Wie hilft uns KI beim Programmieren? Als erfahrener Software Entwickler zeige ich euch, in welchen Situationen mir ChatGPT beim Entwickeln besonders hilft. Die Trainingsdaten der KI enthalten viele Programmiersprachen und Technologien. Außerdem kennt sie viele Algorithmen, Tutorials, Opensource Codes, Probleme und deren Lösungen. Dein Arbeits-Kontext, der komplette Sourcecode dazu und euer Problem bzw. dessen echte Root-Cause sind der KI allerdings unbekannt. Die KI bzw. ChatGPT hilft euch also nur so gut, wie ihr euer Problem bzw. die Anforderung mit passendem Kontext klar beschreibt. Mein generelles Vorgehen dazu ist Teile und Herrsche . Ich zerlege meine User Story bzw. meine Aufgabe in kleinere Teile. Kleinere Teilprobleme oder Teilanforderungen lassen sich leichter und genauer beschreiben, so dass die KI bzw. ChatGPT mich besser unterstützen kann.  Um euch das zu verdeutlichen, zeige ich im Folgenden Beispiele aus meinem Entwickler-Alltag. In diesen Beispielen habe ich Teil-Pr...

Java 21: Die wichtigsten Features seit Version 17

Bild
Java 21, die neue Version mit verlängertem Support, ist da! Hier stelle ich die wichtigsten Features vor: Interface SequencedCollection, Record Patterns, Neuerungen bei switch und das Highlight virtuelle Threads Falls Ihr noch Java 11 verwendet, schaut euch hier die Features von Java 17 an:  java-17-features.html 🎓 Auf Udemy findet ihr meinen kostenloses Online-Kurs zu Java 21 . Java 21 at YouTube in English Interface SequencedCollection Die neuen Sequenced -Interfaces erweitern Listen-Implementierungen um den Direktzugriff auf das erste und letzte Element. Am Beispiel einer  ArrayList  zeige ich hier die neuen, selbsterklärenden Methoden: // Mutable list created. List < String > list = new ArrayList<>( List . of ( "1st" , "2nd" , "3rd" )); log .info( "Read first & last element in list: %s & %s" .formatted( list .getFirst(), list .getLast())); var reversedList = list .reversed(); reversedList .addFirst( "4th...

Streams vs. Loops in Java

Bild
Java's Stream API ist eine mächtige Alternative zu Schleifen. Modernere, reaktive Programmierung setzt voll auf Streams. Hier stelle ich Streams und Loops gegenüber, indem ich die gleiche Aufgabe mittels Stream und Schleife löse.   Java Streams API Ein Stream ist ein Datenstrom. Mit der Java Stream API können Objekte in Datenströmen analysiert, bearbeitet, gefiltert und umgewandelt werden. Ich stelle mir Stream gerne als Fließband vor. Die Objekte werden von einer Quelle (z.B. List ) auf das Fließband gepackt und durchlaufen verschiedene Stationen, an denen sie bearbeitet werden. Zum Abschluss werden sie in ein Ergebnis gepackt (z.B. neue List ), welches dann im weiteren Programmcode benutzt werden kann. Fließband: Stream der analogen Welt Intermediate Operations Zum Bearbeiten der Objekte im Stream gibt es sogenannte "intermediate Operations", die im Stream Interface definiert sind: filter - entfernt Objekte aus dem Stream map - wandelt Objekte um peek - erlaubt Bearbeit...