Java und die Fußangeln in der Programmiersprache
Ein einfaches Java-Programm zu lesen ist meist kein Hexenwerk – die Sprache ist meist sehr explizit und hat zumindest an der Oberfläche wenig Überraschungen. Alles, was geschehen soll, steht auch gut sichtbar aufgeschrieben. Aber trotz all dieser Versuche, Komplexität zu vermeiden, gibt es auch in einer Sprache, die sehr auf explizite, einfach zu verstehende Programme ausgelegt ist, einige Überraschungen, die teilweise zur stunden- oder tagelangem Debugging führen können. In diesem Artikel möchte ich einige dieser Fußangeln vorstellen und erklären, wie man vermeiden kann, allzu lange in ihnen gefangen zu bleiben. Dieser Artikel richtet sich naturgemäß vor allem an Java-Entwickler:innen, die bereits Grundwissen der Sprache besitzen.
Viele dieser Fußangeln sind „corner cases“, die in der Sprachdefinition „so festgelegt“ sind, aber in den meisten Tutorials nicht thematisiert werden. Sie betreffen meistens die anfangs extrem kleine, aber mit zunehmender Entwicklung der Sprache stetig weiter aufklaffende Schere zwischen der Java-Sprache und dem zugrundeliegenden Bytecode, können aber im einzelnen auch einfach Konsequenzen aus logischen, aber hier und dort auch unglücklichen Default-Entscheidungen sein. Details