Blog

Java: The Missing Manual

Vortrag bei der JUGH: Wie nützliche Features die Java-Programmierung erleichtern

Der jüngst gekürte Java-Champion Hendrik Ebbers stellt in seinem Vortrag drei nützliche Features des Standard-Java-API vor, die Entwicklern helfen, stabile und wartbare Anwendungen zu programmieren. Die vorgestellten Features sind der effiziente Umgang mit null und das Handling von NullPointerExceptions, die Programmierung nebenläufiger Prozesse mit Executors und, last but not least, der Umgang mit dem Sprachelement Annotation.

Wenn Programmierer zu Detektiven werden: Die java.lang.NullPointerException

Der Fehler java.lang.NullPointerException dürfte den meisten Java-Programmierern leidlich bekannt sein, taucht er doch bei der Softwareentwicklung mit Java immer wieder in verschiedenen Variationen auf. Da der Compiler diesen Fehler nicht erkennt, tritt er erst beim Ausführen auf. Das Script versucht, auf ein Objekt zuzugreifen, das den Wert Null (0) enthält. Um den Fehler zu beheben, muss die Referenz entweder mit einer anderen Referenz oder mit dem new-Operator initialisiert werden. Damit das bei Codes mit mehreren Übergabepunkten, die den Wert Null (0) zurück geben könnten, nicht zu einer zeitraubenden Suchaufgabe wird, gibt es verschiedene Arten des null-Handlings mit Java, die dem Clean-Code-Anspruch genügen.

Wenn eine einspurige Straße nicht mehr ausreicht: Nebenläufige Prozesse für komplexe Anwendungen

Paralleler Code ist schwierig zu handeln. Doch spätestens, seitdem die Verwendung von Mehrkern-Prozessoren üblich ist, muss parallelisiert werden. In Java gibt es dafür die Klasse der Threads. Das Problem ist, dass die Anzahl der Threads eine Begrenzung hat, die von der CPU, dem Betriebssystem, den parallel laufenden anderen Prozessen, der Java-Version und anderen Faktoren abhängt. Kurz gesagt: Um sicher zu gehen, dass die Anwendung sicher und zuverlässig läuft, genügt der Einsatz von Threads nicht aus. Verwendet man mehr Threads, als das Betriebssystem verkraftet, zerstört man nicht nur die Java-Anwendung, sondern auch das Betriebssystem. Das Java.util.concurrent-Paket liefert mit dem Interface Executor eine statische Klasse, die hilft, nebenläufige Aufgaben zu handeln.

Immer wissen was wichtig ist: Annotations

Annotations werden in Java verwendet, um verschiedene Typen von Metadaten an verschiedenen Punkten zu einem Code hinzuzufügen und zu parametrisieren. Um eine saubere Dokumentation sowie einen sauberen Code zu erreichen, gibt es vordefinierte Annotationen zur Definition eigener Annotationen. Die wichtigsten vordefinierten Annotationen sind:

@Documented einer Annotation ermöglicht die Nutzung im JavaDoc zu dokumentieren.
@Target definiert was mit der Annotation annotiert werden kann, dadurch werden Fehler schon durch den Compoiler gezeigt.
@Retention definiert wie lang eine Annotation laufen soll.

Hendrik war am 25.10.2017 zu Gast bei der Java User Group Hessen (JUGH). Er ist Gründer und Leiter der Java User Group Dortmund, Referent bei anderen Java User Groups sowie Speaker auf internationalen Java-Konferenzen. Seine Schwerpunkte sind UI-Technologien, Middleware und DevOps. Zudem ist er Autor des Fachbuchs Mastering JavaFX 8 Controls. Auf seiner Webseite bloggt er zu UI-Themen.Folgt ihm auf Twitter unter @hendrikEbbers.

Informationen zur JUGH:
Die Java User Group Hessen (JUGH) ist Teil des internationalen Netzwerkes von Java Communities, die sich der weltweiten Verbreitung von Java-Know-how verschrieben haben. Im Sommer 2009 wurde sie von Entwicklern der Micromata GmbH ins Leben gerufen und kann seither auf eine ganze Reihe spannender Workshops und Vorträge zum Thema Java zurückblicken. Zur Tradition der JUGH gehören neben namhaften Gastrednern außerdem so genannte „Stand-up Codings“, wo jeder Java-Entwickler die Gelegenheit bekommt, spontan zu einem Java-Thema seiner Wahl zu sprechen. Die JUGH trifft sich einmal im Monat (in der Regel immer am letzten Donnerstag) in Kassel. Eine Voranmeldung ist meistens nicht nötig, der Eintritt ist frei. Kontakt: jugh@micromata.de. Weitere Informationen sind unter jugh.de erhältlich.

Lust auf mehr von der JUGH? Hier geht’s zum letzten JUGH-Vortrag zum Thema Apache Kafka und das MicroProfile in der Softwareentwicklung.

(mf)

Sebastian Hardt

Sebastian Hardt