UNSERE
Schulungen
- Java Programmer & Developer
- Schulung Java 25 Grundlagen
- Java 25 Fortgeschritten
- Schulung Java 25 & 21 New Features
- Schulung Java 21 new Features
- Schulung Java SE 8 New Features
- Schulung Java 9-17 New Features
- Vorbereitung zur Java Zertifizierung
- GraalVM – Einführung und Einsatz
- Performance Tuning von Java Applications
- Schulung Clean Code
- Schulung Testgetriebene Entwicklung mit Java
- Schulung Java & JUnit for Testers
- Schulung Rich Clients mit JavaFX entwickeln
- Frontend
- AI in Development
- Spring Framework
- Java Enterprise
- Microservices & Cloud
- Java Web
- Web & Application Server
- Android & IOS
- Java Architecture & Design
- Software Test
- DevOps & Build Automation
- Agile Software-Entwicklung mit Scrum
- NoSQL und Streaming Systeme
- Andere Themen
- Schulung Backend ReST Server mit Node.js
- Schulung Entwicklung von Machine Learning Modellen
- Schulung AWS Cloud Functions mit Node.js und TypeScript
- Schulung Programmierung mit Kotlin
- Schulung Programmierung mit Python
- Spring AI: Integration von KI in selbstentwickelter Software
- Schulung AI Tools für Java Developer
Thema Virtuelle Threads
Virtual Threads stellen in Java eine Innovation dar, die mit dem Project Loom ins Leben gerufen wurde. Sie dienen dazu, die gleichzeitige Bearbeitung vielfältiger Tasks effektiver zu gestalten. Diese Threads sind als eine Art leichtgewichtige Alternative zu den herkömmlichen Betriebssystem-Threads konzipiert und haben das Ziel, die Performanz von Applikationen, die eine hohe Anzahl paralleler Prozesse bewältigen, speziell bei I/O-wartenden Operationen, zu optimieren.
Die Vorteile von Virtual Threads sind vielfältig:
Erweiterte Skalierbarkeit: Im Gegensatz zu Plattform-Threads ermöglichen Virtual Threads das Management von Millionen gleichzeitiger Threads durch eine einzige Java-Instanz, was die Grenzen traditioneller Threads sprengt.
Gesteigerte Effizienz: Da Virtual Threads unter der Kontrolle der JVM stehen, können sie mit einer höheren Effizienz hinsichtlich der CPU-Nutzung geplant und verwaltet werden, was insbesondere dann zur Geltung kommt, wenn ein Thread auf eine I/O-Aktion wartet.
Vereinfachung von Parallelität: Mit Virtual Threads können Entwickler auf vertraute Synchronisationswerkzeuge zurückgreifen, um den Zugriff auf geteilte Ressourcen zu synchronisieren, anstatt sich auf komplexere asynchrone Strukturen verlassen zu müssen.
Weniger überflüssiger Code: Die Möglichkeit, synchrone Programmiermuster anzuwenden, verringert den Bedarf an zusätzlichem Code, der oft mit asynchroner Programmierung einhergeht.
Optimierte Performance bei I/O-intensiven Applikationen: Anwendungen, die stark von Ein- und Ausgabeoperationen abhängen, profitieren in besonderem Maße von den Eigenschaften der Virtual Threads, da diese die Blockadezeiten minimieren.
Vereinfachte Fehlerbehandlung: Die Handhabung von Fehlern in einem synchronen Programmierstil ist in der Regel intuitiver und leichter umzusetzen als in einem asynchronen Kontext.
Thema Structured Concurrency
Structured Concurrency ist ein Programmierparadigma in Java, das darauf abzielt, die Arbeit mit nebenläufigen Prozessen – also die Ausführung von mehreren Berechnungen parallel – zu vereinfachen und sicherer zu machen. Es handelt sich um ein Konzept, das die Lebensdauer von nebenläufigen Prozessen an die Programmstruktur, in der sie gestartet werden, bindet. Dies bedeutet, dass wenn eine Methode oder ein Block von Code nebenläufige Prozesse initiiert, diese Prozesse nicht über das Ende der Ausführung dieser Methode oder des Blocks hinaus weiterlaufen dürfen.
Structured Concurrency bringt mehrere Vorteile mit sich:
Einfachere Fehlerbehandlung: Fehler, die in nebenläufigen Prozessen auftreten, können an dem Punkt behandelt werden, an dem die Prozesse gestartet wurden, was die Fehlerbehandlung vereinfacht und zentralisiert.
Verbesserte Lesbarkeit: Da die nebenläufigen Prozesse eine klar definierte Struktur haben, wird der Code, der nebenläufige Operationen enthält, einfacher zu lesen und zu verstehen.
Lebenszyklusmanagement: Structured Concurrency hilft bei der Verwaltung des Lebenszyklus von Threads, indem es sicherstellt, dass alle gestarteten Threads beendet werden, bevor der übergeordnete Block abgeschlossen ist. Dies vermeidet „verwaiste“ Threads, die nach Beendigung des Hauptprogramms weiterlaufen und Ressourcen verbrauchen.
Sichere Beendigung: Wenn ein Block von Code, der nebenläufige Prozesse initiiert, abgeschlossen wird, werden alle seine Prozesse ordnungsgemäß beendet. Dies verhindert Probleme, die durch unerwartetes Abbrechen von Operationen entstehen könnten.
Verbesserte Ressourcennutzung: Durch die strukturierte Beendigung von nebenläufigen Prozessen kann eine effizientere Ressourcennutzung erzielt werden, da Ressourcen nicht unnötig von nicht mehr benötigten Prozessen belegt werden.
In Java kann Structured Concurrency durch verschiedene Mechanismen wie die ExecutorService-API oder Frameworks und Bibliotheken, die dieses Paradigma unterstützen, umgesetzt werden. Es ist auch ein wichtiger Teil des Designs hinter Project Loom, das die Einführung von leichtgewichtigen Threads – den Virtual Threads – plant, welche die Anwendung von Structured Concurrency in Java weiter erleichtern sollen.
Thema Vector API
Das Vector API in Java ist eine experimentelle API, die als Teil des Project Panama eingeführt wurde, um einen neuen Weg für die effiziente Ausführung von vektorbasierten Berechnungen zu ermöglichen. Diese API stellt einen großen Fortschritt in der Java-Plattform dar, da sie es ermöglicht, Vorteile der Vektorverarbeitungsfähigkeiten moderner CPUs direkt in Java zu nutzen.
Hier sind die wichtigsten Punkte des Vector API:
Performance-Steigerung: Durch die Nutzung von SIMD (Single Instruction, Multiple Data) Instruktionen können mit dem Vector API mehrere Datenoperationen gleichzeitig ausgeführt werden, was zu einer deutlichen Beschleunigung von Berechnungen führen kann.
Hardware-Ausnutzung: Das API ist darauf ausgelegt, die spezifischen Vektorhardware-Befehlssätze, die in modernen Prozessoren vorhanden sind, wie AVX in x86 oder NEON in ARM, effektiv zu nutzen.
Klarheit und Sicherheit: Obwohl es sich um eine Low-Level-Operation handelt, ist die API so gestaltet, dass sie in die Java-Sprache passt und die Sicherheits- und Klarheitsgarantien von Java beibehält.
Plattformunabhängigkeit: Programme, die das Vector API verwenden, sind plattformunabhängig, da die API die Unterschiede in den Befehlssätzen der Prozessoren abstrahiert. Die JVM ist verantwortlich für die Ausführung des am besten geeigneten Befehlssatzes für die aktuelle Plattform.
Entwicklerfreundlichkeit: Das API ist so konzipiert, dass es einfach zu verwenden ist und eine nahtlose Integration in den bestehenden Code ermöglicht, wodurch Entwickler ohne tiefgreifendes Verständnis der Vektorhardware leistungsstarke Optimierungen vornehmen können.
Das Vector API befindet sich in einem inkrementellen Entwicklungsprozess und ist Teil der JDK-Enhancement-Proposals (JEPs), die die Entwicklung und Integration neuer Features in das JDK steuern. Mit jeder neuen Java-Version werden Verbesserungen und Erweiterungen am Vector API vorgenommen, um die Performance und Benutzerfreundlichkeit zu steigern.—-
Kursthemen
Finale Neuerungen Java 18 – 21
- Pattern Matching for switch
- Record Patterns
- Scoped Values
- Foreign Function & Memory API
- Virtual Threads
- Sequenced Collections
- Internet-Address Resolution SPI
Finale Neuerungen Java 22-25
- Launch Multi-File Source-Code Programs
- Unnamed Variables & Patterns
- Markdown Documentation Comments
- Stream Gatherers
- Key Derivation Function API
- Module Import Declarations
- Flexible Constructor Bodies
- Compact Source Files and Instance Main
- Class-File API
- Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
- Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
JVM Änderungen
- Ahead-of-Time Class Loading & Linking, Profiling, Command-Line Ergonomics
- JFR Cooperative Sampling
- Compact Object Headers
- JFR Method Timing & Tracing
- Remove the Windows 32-bit x86 Port
- Garbage Collector Changes (Shanandoa, ZGC)
- 32-bit x86 Port for Removal
Previews & Incubators
- Stable Values
- PEM Encodings of Cryptographic Objects
- Structured Concurrency
- Primitive Types in Patterns, instanceof, and switch
- Vector API
- JFR CPU-Time Profiling
- String Templates
Vorkenntnisse
- Grundlegende Kenntnisse in der
Programmiersprache Java
Zielgruppe
- Java-Entwickler, die von Java 8-17
auf Java 21 oder Java 25 umsteigen wollen
Trainer
Im Mittelpunkt unserer Arbeit steht unsere Begeisterung für Technologien, die Zufriedenheit unserer Kund:innen und das dadurch erreichte Vertrauensverhältnis.

Mag. DI Löwenstein
Mag. DI Bernhard Löwenstein hat Informatik und Informatikmanagement an der TU Wien studiert. Er ist seit fast zweieinhalb Jahrzehnten als Entwickler, Trainer und Consultant für Java und zugehörige Frameworks tätig.
Zertifizierter Java, Javascript, Spring und Angular Developer

DI Schaffler-Glößl
DI Michael Schaffler-Glößl hat Informatik an der TU Wien studiert. Seit mehr als 30 Jahren arbeitet er als Software Entwickler, Consultant und Trainer für Java, Spring, Java EE, Microservices, NoSql Datenbanken, Docker, Kubernetes, Angular, AI und weitere Themen.
Zertifizierter Java 21, Javascript, Spring, JEE und Angular Developer und Architekt

Ben Rowley
Hr. Rowley arbeitet als Senior Software Entwickler & Trainer für Java, Spring und KI.
Hr. Rowley hat viel Erfahrung im Bereich künstlicher Intelligenz und deren Integration in die Enterprise Anwendungen
AUSGEZEICHNET
Basierend auf 156 Bewertungen
Gepostet auf Google![]()
Michaela StradnerTrustindex überprüft, ob die Originalquelle der Bewertung Google ist.
Ich kann die online Schulung Clean Code jedem empfehlen. Sinnvolle Inhalte mit kleinen Praxisbeispielen zum selbst ausprobieren der zuvor besprochenen Themen.Gepostet auf Google![]()
H BTrustindex überprüft, ob die Originalquelle der Bewertung Google ist.
hatte eine richtig gute Zeit. Trainer nimmt sich Zeit auf Fragen einzugehen und die Schulung ist gut aufgebaut.Gepostet auf Google![]()
sanna (Sanna0908)Trustindex überprüft, ob die Originalquelle der Bewertung Google ist.
Gute Auswahl an Kursen, hab mich dann für einen Git-Kurs entschieden. Vortragender war kompetent und ist super auf die Wünsche und das Arbeitstempo der Gruppe eingegangen, das Wissen wurde perfekt übermittelt. Getränkebar war auch toll :)Gepostet auf Google![]()
Michelle-Lea BreitwieserTrustindex überprüft, ob die Originalquelle der Bewertung Google ist.
Die Spring-Boot-Schulung war super erklärt und angenehm gestaltet – ganz ohne Stress oder Zeitdruck. Es gab viele hilfreiche Unterlagen, die man auch später noch gut als Nachschlagewerk nutzen kann. Auch die Verpflegung war top, sodass man sich den ganzen Tag gut aufgehoben gefühlt hat. Insgesamt eine rundum gelungene Schulung, die ich gerne weiterempfehle.Gepostet auf Google![]()
Lukas SchandlTrustindex überprüft, ob die Originalquelle der Bewertung Google ist.
Ich habe dort einen Spring Boot Kurs besucht und kann nur positives darüber verlieren. Auf jeden Fall weiterzuempfehlen.Gepostet auf Google![]()
Gabriel HübnerTrustindex überprüft, ob die Originalquelle der Bewertung Google ist.
Habe gerade ein 4 tägiges Spring Boot 4 Training dort abgeschlossen. Der Trainer war super, mit einer sehr angenehmen und netten Art. Das Tempo war nicht zu schnell und es ist immer sofort auf einen eingegangen worden, wenn man Fragen hatte. Habe da definitiv etwas neues gelernt und jetzt ein besseres Verständnis von dem Framework. Kann das Training nur wärmstens weiterempfehlen!Gepostet auf Google![]()
Rahul TooraTrustindex überprüft, ob die Originalquelle der Bewertung Google ist.
Sehr gut erklärter Spring Boot Kurs!Gepostet auf Google![]()
gweep gweepTrustindex überprüft, ob die Originalquelle der Bewertung Google ist.
Mittlerweile zwei Schulung bei der CIIT absolviert (Java und Python), war bisher sehr zufrieden und werde ggf. auch noch weitere Schulungen besuchen. Auch hinsichtlich Versorgung ist alles bestens.Gepostet auf Google![]()
Stefan MachuraTrustindex überprüft, ob die Originalquelle der Bewertung Google ist.
Super Einsteiger-Schulung von Michael Schaffler für Angular. Gut strukturierter und verständlicher Aufbau mit viel Praxis anhand einer kleinen Übungsanwendung. Fertig vorbereitete, virtuelle Schulungsumgebungen die auch Remote aus dem Home Office gut verwendet werden können. Ausreichend Zeit für Rückfragen und Hilfestellungen.