Wenn du in Java auf das Schlüsselwort abstract stößt, wirkt das am Anfang oft wie eine unnötige Hürde. Warum sollte man eine Klasse schreiben, von der man gar kein Objekt erstellen kann? Um das zu verstehen, musst du kurz den Kopf von der Tastatur heben und in Konzepten denken. In der Softwareentwicklung geht es ständig darum, Gemeinsamkeiten zu finden und diese zu strukturieren. Das Wort "abstrakt" kommt aus dem Lateinischen und bedeutet so viel wie "abgezogen" oder "vom Besonderen losgelöst".
Weiterlesen
Du kennst dieses Gefühl: Du schreibst Code, drückst auf „Run“ und der Compiler antwortet mit einer roten Wand aus Fehlermeldungen. Oder die Anwendung startet, aber „irgendwas“ ist komisch. Und irgendwo im Hinterkopf sitzt dieser Gedanke: „Vielleicht bin ich einfach nicht gut genug.“
Ich will dir heute eine These mitgeben, die wie ein mentaler Sicherheitsgurt funktionieren kann:
Der Ursprung, etwas richtig zu machen, ist immer, es falsch zu machen.
Und oft gilt sogar: Vieles, was wir heute „richtig“ nennen, hat historisch irgendwo mit einem Fehler angefangen. Weiterlesen
Wenn du Java-Anwendungen entwickelst, kommst du an Maven nicht vorbei. Es verwaltet deine Abhängigkeiten und steuert den Build-Prozess. Aber oft stehst du vor dem Problem, dass deine Anwendung in verschiedenen Umgebungen unterschiedlich funktionieren muss. Weiterlesen
In Java unterscheidest du grob zwischen primitiven Datentypen und Referenztypen. Primitive Typen sind die Basis: Sie speichern den Wert direkt, ohne Objekt-Hülle. Das macht sie schnell, vorhersehbar und speichereffizient. Wichtig ist dabei: Die Größe der primitiven Typen ist in Java fest definiert und hängt nicht vom Betriebssystem ab. Genau diese Festlegung macht Code auf verschiedenen Plattformen so stabil. Weiterlesen
Das Leben als Softwareentwickler wird oft romantisiert. Man stellt sich vor, wie wir den ganzen Tag komplexe Algorithmen entwerfen, innovative Features bauen und dabei literweise Kaffee trinken, während wir uns wie Hacker in einem Film fühlen. Doch die Realität sieht oft anders aus, und das ist auch völlig in Ordnung. Es gibt Tage, an denen du vor Aufgaben sitzt, die auf den ersten Blick absolut keinen Spaß machen. Das können endlose XML-Konfigurationen in einem älteren JavaEE-Projekt sein, das Auflösen von Dependency-Konflikten in Maven oder das Schreiben von Dokumentationen für Code, den du nicht einmal selbst verfasst hast. Weiterlesen
Polymorphismus klingt irgendwie erstmal nach einem Wort aus dem Biologieunterricht oder nach einem mathematischen Konstrukt. In Java steckt dahinter aber etwas sehr Praktisches: Du schreibst Code, der mit verschiedenen konkreten Klassen arbeiten kann, ohne dass du überall Sonderfälle einbaust. Das macht deinen Code robuster, leichter testbar und oft auch deutlich übersichtlicher. Weiterlesen
Du kennst das: Irgendwas funktioniert nicht, du hast keinen Plan warum, und der schnellste Griff geht zu System.out.println(). Einmal rauswerfen, nochmal laufen lassen, Ausgabe anschauen - fertig. Das fühlt sich an wie Debugging, ist es aber nicht. Es ist eher eine improvisierte Spurensuche mit Taschenlampe, während du eigentlich ein komplettes Werkzeugset neben dir liegen hast.
Weiterlesen
Annotationen in Java sind kleine Marker direkt im Code, die Zusatzinformationen tragen. Du kennst sie vermutlich schon: @Override, @Deprecated oder @SuppressWarnings. Das sind keine Kommentare und auch keine Magie im Sinne von "der Compiler macht irgendwas Unfassbares". Es ist eher wie ein sauberer Zettel am Code: "Dieses Element hat eine bestimmte Bedeutung". Entscheidend ist, wer diesen Zettel liest - der Compiler, dein IDE-Inspektor, ein Build-Tool oder ein Framework zur Laufzeit. Weiterlesen

Hi, ich bin Marcel!
Als Fachinformatiker für Anwendungsentwicklung und IHK-geprüfter Ausbilder teile ich auf meinem Blog Grundlagen- und Fortgeschrittenen-Wissen für angehende Entwickler*innen und Interessierte, sowie weitere spannende Themen aus der IT.