Java

Java ist die Mainstream Programmiersprache im Bereich der objektorientierten Anwendungsentwicklung. Ihr Einsatzbereich reicht von embedded Devices mit Android oder Java ME (Micro Edition) über die Java SE (Standard Edition) für den Desktop bis hin zur Java Enterprise Edition (Java EE) für Unternehmensanwendungen. Die weite Verbreitung auf einer Vielzahl von Plattformen und die sehr reichhaltige Standard API machen das Erlernen von Java zu einer guten Investition.

Auf diesen Seiten will ich versuchen, einige Features der Sprache und vor allem das Standard API praxisorientiert in loser Folge vorzustellen. Aufbau und Inhalt orientieren sich an meiner seit Jahren erfolgreichen C++ Website. Zum Thema Java Enterprise Edition gibt es schon seit längerem eine spezielle Seite mit dem Schwerpunkt Enterprise JavaBeans.

Tutorials

Die ersten Schritte zur Java Programmierung stellt die notwendigen Werkzeuge für den Einstieg in die Java Programmierung vor.

Das Tutorial Objektorientiertes Programmieren in Java führt in das Konzept der Objektorientierung am Beispiel von Java ein.

API

Regular Expressions: Reguläre Ausdrücke (engl.: Regular Expressions, Abk.: regex) sind ein mächtiges Werkzeug zur Verarbeitung von Zeichenketten. In der Programmiersprache Java sind Regular Expressions seit Version 1.4 fest eingebaut. Diese Seite enthält eine Regex Kurzreferenz und einen Regex Tester zum interaktiven Testen von Regulären Ausdrücken.

Java 2D mit Grafikbeschleunigung unter Linux: Wochenlang habe ich mich über die schlechte Performance einer Java 2D Anwendung unter Linux geärgert. Dabei ist die Lösung so einfach - man muss nur darauf kommen.

Properties und Preferences: Oftmals ist es sinnvoll, das Verhalten eines Programms über Voreinstellungen konfigurierbar zu gestalten. In Java gibt es dafür grundsätzlich zwei verschiedene Möglichkeiten: Der Einsatz von Properties Dateien oder die Benutzung der Preferences API.

Zeitzonen in Java: Bei der Online-Kommunikation mit Partnern im Ausland ist besonderes Augenmerk auf eventuelle Zeitunterschiede zu legen, um Fehlern und Verstimmungen aus dem Weg zu gehen. Ein in New York (USA) wohnender Partner ist sicher nicht begeistert, wenn man ihn um 8 Uhr Mitteleuropäischer Zeit (MEZ) anruft. Zeitzonen helfen hierbei, den Überblick zu behalten.

Testing

JU Testen mit JUnit: Testen ist ein unverzichtbarer Bestandteil der Entwicklung von Software. Dabei empfiehlt es sich, schon sehr frühzeitig im Entwicklungsprozess mit der Erstellung von Tests zu beginnen. Idealerweise erfolgt die Programmierung einer Java Klasse und des zugehörigen Tests gleichzeitig. Ein wichtiges Hilfsmittel dabei ist JUnit.

@P Parametrisiertes Testen mit JUnit: JUnit 4 erweitert die aus JUnit 3 bekannten Methoden des Software Testings nicht nur um die Verwendung von Annotationen, sondern bietet zusätzliche Mechanismen für die effektive Implementierung von Tests. So führt der Parameterized Testrunner einen Test mit einer Vielzahl von Parametern aus.

JUnitProxy JUnit und Proxy: Private Methoden testen: Nach den einführenden Beispielen zum Testen mit JUnit 4 und der Verwendung des Parameterized Testrunners soll im Mittelpunkt dieses Artikels eine praktische Anwendung stehen, nämlich der Test einer bereits vorhandenen Klasse. Schwerpunkt ist dabei die Testbarkeit privater Methoden.

Netzwerk

Netzwerkclients in Java: Mit der Programmiersprache Java und ihrer reichhaltigen Standard-API ist der Zugriff auf Ressourcen im Netzwerk sehr einfach und flexibel möglich - kein Wunder, hat doch Java-Erfinder Sun Microsystems bereits in den Neunzigerjahren das visionäre Motto «Das Netzwerk ist der Computer» herausgegeben. Dieser Artikel stellt verschiedene Methoden der Netzwerkprogrammierung vor - angefangen von URL bis hin zu Sockets.

UDP und Multicast mit Java Sockets: Der vorhergehende Artikel Netzwerkclients in Java demonstriert, wie einfach die Verwendung von Internetressourcen in einem Java Programm ist. Nun soll ein ambitionierteres Projekt in Angriff genommen werden: Die Implementierung des Simple Service Discovery Protocol (SSDP), welches Bestandteil von Universal Plug and Play (UPnP) ist.

Java und JSON

JAXB und Jackson: Speichern von Java Objekten als JSON: Der Jackson JSON Processor und die Java Architecture for XML Binding (JAXB) bieten ein einfach anzuwendendes Werkzeug zur Serialisierung und Deserialisierung von Java Objekten nach und von JSON. Die Abbildung von Java Objekten auf JSON Daten erfolgt dabei mittels der bekannten JAXB Annotationen.

Java und XML

XML Stream Reader: Eine einfache und performante Methode zum Parsen eines XML Streams mittels Java ist der XML Stream Reader. Der Artikel zeigt eine beispielhafte Implementierung zum Lesen und Auswerten eines Atom Feeds.

SAX Parser: SAX (Simple API for XML) stellt Methoden zum schnellen Parsen von XML bereit. Der Artikel zeigt eine Anwendung von SAX zur Auswertung von Daten des OpenStreetMap Projektes.

DOM API: Das Document Object Model (DOM) dient zur Abbildung kompletter XML Dokumente als Baum von Java Objekten. Damit lässt sich ein dynamisches und programmgesteuertes Erstellen und Modifizieren von XML Daten im Speicher der Java Virtual Machine realisieren. Das Umwandeln von XML Dateien in DOM und zurück erfolgt mit den Komponenten Parser und Transformer aus der JAXP API.

XML Stream Writer und Namespaces: Die Java Streaming API für XML (StAX) eignet sich nicht nur zum Parsen, sondern auch zum Schreiben von XML Dokumenten. So lässt sich zum Beispiel ganz einfach ein Atom Feed mit den wichtigsten News zur eigenen Website erstellen.

Die XPath API: Mittels XPath Ausdrücken lassen sich auf elegante Art und Weise gezielt Informationen aus XML Dokumenten extrahieren. Um XPath in einem Java Programm zu verwenden, sind nur wenige Zutaten erforderlich.

Kein Parser! Direktes Bearbeiten von XML Daten in Java mit JAXB: Die Java Architecture for XML Binding (JAXB) erlaubt die direkte Verarbeitung von XML Daten in einem Java Programm. Der Programmierer muss sich dabei nicht mit XML-Spezifika wie Parser, Transformer oder dem Document Object Model (DOM) auseinandersetzen. Vielmehr stellt JAXB dem Java Programmierer seine gewohnte Sicht auf Klassen und Objekte bereit - die Verarbeitung des XML Datenstroms erfolgt komplett undercover.

JAXB: Speichern von Java Objekten als XML: Mittels der Java Architecture for XML Binding (JAXB) ist die Erzeugung von XML Daten aus Java Objekten auf einfache Art und Weise möglich. Die Abbildung aus der Java- in die XML-Domäne wird dabei über einige wenige Annotationen im Quelltext gesteuert; Konfigurationsdateien oder Vorverarbeitungsschritte sind nicht notwendig.

Libraries

Java Native Access: Java kann aufgrund seiner Plattformunabhängigkeit nicht alle Funktionen bereitstellen, die das jeweilige Betriebssystem einem C-Programmierer bietet. Mittels Java Native Access (JNA) lassen sie sich jedoch relativ einfach nachrüsten.

Zeitzone mit GeoTools aus Shapefiles bestimmen: Zeitzonen definieren die Differenz der jeweiligen Ortszeit zur Greenwich Mean Time (GMT) sowie die Regeln zur Sommer- und Winterzeitumstellung. Mit den heute gegebenen Möglichkeiten des weltweiten Online-Austauschs von Daten und Informationen spielt die genaue Kenntnis der Zeitzone des Kommunikationspartners eine große Rolle, um Missverständnisse und Fehler von vornherein zu vermeiden.
Der Artikel beschreibt die Implementierung eines RESTful Webservice zur Bestimmung der Zeitzone aus geografischen Koordinaten mittels Java, GeoTools und Shapefiles.

Java User Group Darmstadt

Die Java User Group Darmstadt ist eine offene und freie Community der Java Anwender in Darmstadt und Umgebung. Sie organisiert regelmäßig interessante und kostenlose Vorträge, zum Beispiel zu den Themen Android, NoSQL–Datenbanken, Augmented Reality, Java EE 6, Cloud Computing und Software Testing.