<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE FL_Course SYSTEM "https://www.flane.de/dtd/fl_course095.dtd"><?xml-stylesheet type="text/xsl" href="https://portal.flane.ch/css/xml-course.xsl"?><course productid="9584" language="en" source="https://portal.flane.ch/swisscom/en/xml-course/ot-java-optim" lastchanged="2025-07-29T12:17:42+02:00" parent="https://portal.flane.ch/swisscom/en/xml-courses"><title>Optimierung und Tuning von Java-Programmen</title><productcode>JAVA-OPTIM</productcode><vendorcode>OT</vendorcode><vendorname>Other</vendorname><fullproductcode>OT-JAVA-OPTIM</fullproductcode><version>1</version><objective>&lt;p&gt;Dieses Seminar wendet sich an erfahrene Java-Programmierer, die hier Anregungen zum Performance-Tuning und zur Speicheroptimierung f&amp;uuml;r Java-Anwendungen erhalten. Neben den elementaren Regeln zur Optimierung werden zur Vertiefung Beispiele aus der Praxis vorgestellt, an denen die Machbarkeit der pr&amp;auml;sentierten L&amp;ouml;sungsvorschl&amp;auml;ge aufgezeigt wird&lt;/p&gt;</objective><essentials>&lt;p&gt;&lt;span class=&quot;cms-link-marked&quot;&gt;&lt;a class=&quot;fl-href-prod&quot; href=&quot;/swisscom/en/course/ot-java-erw-2&quot;&gt;&lt;svg role=&quot;img&quot; aria-hidden=&quot;true&quot; focusable=&quot;false&quot; data-nosnippet class=&quot;cms-linkmark&quot;&gt;&lt;use xlink:href=&quot;/css/img/icnset-linkmarks.svg#linkmark&quot;&gt;&lt;/use&gt;&lt;/svg&gt;Java Erweiterungen II - Vertiefung &lt;span class=&quot;fl-prod-pcode&quot;&gt;(JAVA-ERW-2)&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; oder vergleichbare Kenntnisse.&lt;/p&gt;</essentials><audience>&lt;p&gt;Software-Ingenieure, Internet-/Intranet-Entwickler, projekterfahrene Anwendungsentwickler.&lt;/p&gt;</audience><contents>&lt;p&gt;&lt;strong&gt;Vorgehensweise:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Zielsetzung bei der Optimierung&lt;/li&gt;&lt;li&gt;Identifizierung von Performanceproblemen&lt;/li&gt;&lt;li&gt;Optimierungsdreieck&lt;/li&gt;&lt;li&gt;Der Optimierungszyklus&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Werkzeuge und Hilfsmittel:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Profiler&lt;/li&gt;&lt;li&gt;Speicher- und System-Monitoring&lt;/li&gt;&lt;li&gt;Decompiler&lt;/li&gt;&lt;li&gt;Last- und Performancetests&lt;/li&gt;&lt;li&gt;Remotezugriff&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Laufzeitumgebung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arbeitsweise von JVM, JIT, HotSpot&lt;/li&gt;&lt;li&gt;Funktionsweise der Garbage Collection&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Optimierung von Programmen und effiziente Programmiertechnik:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Klassische Optimierungen (Schleifen, Invarianten)&lt;/li&gt;&lt;li&gt;Arrays&lt;/li&gt;&lt;li&gt;Lebenszyklus und Wiederverwendung von Objekten&lt;/li&gt;&lt;li&gt;Schwache Referenzen&lt;/li&gt;&lt;li&gt;Caches und Objekt-Pool&lt;/li&gt;&lt;li&gt;Objektbeziehungen und Klassendesign&lt;/li&gt;&lt;li&gt;Multithreading und Threadsynchronisation, Thread Pool - Zeichenkettenverarbeitung&lt;/li&gt;&lt;li&gt;JDBC&lt;/li&gt;&lt;li&gt;riskante Optimierungen&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Effizienter Einsatz der Klassenbibliotheken:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Datenstrukturen&lt;/li&gt;&lt;li&gt;Klassen der Collection-API (Listen, Queues, Mengen, Assoziativspeicher)&lt;/li&gt;&lt;li&gt;Alternative Collection-Bibliotheken&lt;/li&gt;&lt;li&gt;Ein-/Ausgabe, NIO&lt;/li&gt;&lt;li&gt;Serialisierung, XML-Serialisierung&lt;/li&gt;&lt;li&gt;Alternative Serialisierungsbibliotheken&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Verteilte Anwendungen und Datenbanken:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Value Objects&lt;/li&gt;&lt;li&gt;Datenbanken: Connection Pools, Prepared Statements, Connection Parameter&lt;/li&gt;&lt;li&gt;Transaktionen: Isolation Level und parallele Transaktionen&lt;/li&gt;&lt;li&gt;Typische Optimierungsmassnahmen im Applikationsserver: Servlets und Enterprise JavaBeans&lt;/li&gt;&lt;li&gt;verteilte Caches&lt;/li&gt;&lt;li&gt;Performance Patterns und Antipatterns&lt;/li&gt;&lt;/ul&gt;</contents><objective_plain>Dieses Seminar wendet sich an erfahrene Java-Programmierer, die hier Anregungen zum Performance-Tuning und zur Speicheroptimierung für Java-Anwendungen erhalten. Neben den elementaren Regeln zur Optimierung werden zur Vertiefung Beispiele aus der Praxis vorgestellt, an denen die Machbarkeit der präsentierten Lösungsvorschläge aufgezeigt wird</objective_plain><essentials_plain>Java Erweiterungen II - Vertiefung (JAVA-ERW-2) oder vergleichbare Kenntnisse.</essentials_plain><audience_plain>Software-Ingenieure, Internet-/Intranet-Entwickler, projekterfahrene Anwendungsentwickler.</audience_plain><contents_plain>Vorgehensweise:


- Zielsetzung bei der Optimierung
- Identifizierung von Performanceproblemen
- Optimierungsdreieck
- Der Optimierungszyklus
Werkzeuge und Hilfsmittel:


- Profiler
- Speicher- und System-Monitoring
- Decompiler
- Last- und Performancetests
- Remotezugriff
Laufzeitumgebung:


- Arbeitsweise von JVM, JIT, HotSpot
- Funktionsweise der Garbage Collection
Optimierung von Programmen und effiziente Programmiertechnik:


- Klassische Optimierungen (Schleifen, Invarianten)
- Arrays
- Lebenszyklus und Wiederverwendung von Objekten
- Schwache Referenzen
- Caches und Objekt-Pool
- Objektbeziehungen und Klassendesign
- Multithreading und Threadsynchronisation, Thread Pool - Zeichenkettenverarbeitung
- JDBC
- riskante Optimierungen
Effizienter Einsatz der Klassenbibliotheken:


- Datenstrukturen
- Klassen der Collection-API (Listen, Queues, Mengen, Assoziativspeicher)
- Alternative Collection-Bibliotheken
- Ein-/Ausgabe, NIO
- Serialisierung, XML-Serialisierung
- Alternative Serialisierungsbibliotheken
Verteilte Anwendungen und Datenbanken:


- Value Objects
- Datenbanken: Connection Pools, Prepared Statements, Connection Parameter
- Transaktionen: Isolation Level und parallele Transaktionen
- Typische Optimierungsmassnahmen im Applikationsserver: Servlets und Enterprise JavaBeans
- verteilte Caches
- Performance Patterns und Antipatterns</contents_plain><duration unit="d" days="5">5 days</duration><pricelist><price country="CH" currency="CHF">2980.00</price><price country="DE" currency="EUR">2390.00</price><price country="AT" currency="EUR">2390.00</price></pricelist><miles/></course>