Programmieren lernen mit Java Teil 2

Ein Wort zum Kurskonzept

Ich bin angehalten, mich am Begleitbuch zu orientieren, wir werden also die Themen betrachten, die im Buch vorgestellt werden.

Allerdings pflege ich auch, meine Kurse möglichst anschaulich und an der Praxis orientiert zu gestalten. Deshalb werden wir nicht in der Reihenfolge des Buchs vorgehen, sondern eine Anwendung aufbauen, die mit den im Buch vorgestellten Techniken arbeitet. Soweit das in einer Woche möglich ist...

Das Buch geht von Java 7 aus, aktuell ist Java 17. Ist das Buch und damit der Kurs also "total veraltet"? Nein: die Techniken, die hier für Java 7 dargestellt werden sind nahezu völlig auch noch im aktuellen Java aktuell. Einige Dinge kommen neu hinzu und wir werden ganz klassisch, wie in der Praxis vorgehen:

Programmiere etwas so, dass es logischerweise funktionieren müsste,
dann probier es aus und sieh, ob es auch praktisch funktioniert.
Alles, was wirklich logisch ist, kann auch funktionieren.

Und wir arbeiten natürlich mit aktueller Software. Oder besser: mit Software, die aktuell als stabil und im professionellen Einsatz bewährt ist.

Weiter hinein:

JavaDoc: schlaue Kommentare...

Schon Kommentare schreiben ist eine grauenhaft schwierige Aufgabe für viele programmierende Genies. Richtige Dokumentation ist für viele eine unlösbare Herausforderung. JavaDoc hilft zumindest denen, die sich zu brauchbaren Kommentaren durchringen können.

Wir wenden diese Techniken an, sobald wir etwas programmiert haben, das man kommentieren sollte...

Mehr machen mit Zeichenketten: suchen, finden, bearbeiten

Im ersten Teil haben wir gelernt, dass die String Objekte eine Vielzahl von Methoden an Bord haben, mit denen man ihre Inhalte analysieren und auch bearbeiten kann.

Da diese Techniken in der Praxis in allen Programmiersprachen ganz besonders wichtig sind, werden wir uns damit etwas intensiver beschäftigen, als es im Buch aussieht...

Außer String gibt es auch weitere Klassen, die sich mit Zeichenketten beschäftigen, das gibt uns Gelegenheit, uns über Mutability und Threadsicherheit bei Programmen, die auf mehreren Prozessoren parallel laufen, zu beschäftigen...

Flexible Datentypen mit Generics

Wir wissen, dass Java sehr "pingelig" ist, was den Typ von Daten angeht. Eine Integerzahl kann keine Kommastellen haben, eine Ziffer ist keine Zahl etc: alles das hat seinen Sinn, was aber, wenn wir nicht genau vorhersehen können, mit was für Datentypen unsere Programmlogik konfrontiert sein wird? In Sprachen wie PHP oder Shellscripten wird das Problem schlicht ignoriert. Das ist schön einfach aber auch ein ewig sprudelnder Born unliebsamer Überraschungen. In Java kann man durch Generics die gleiche Logik für verschiedene Datentypen verwenden, indem man Daten ganz bewusst und kontrolliert als Generics deklariert.

Generics sind sehr abstrakt und komplex, sie sind vor allem in ambitionierten Projekten nützlich, wenn ein Programm besonders elegant gestaltet und optimiert werden soll. Wir werden uns also vor allem die Theorie hinter diesem Konzept ansehen. Dabei werfen wir auch einen Blick auf eine immens wichtige Kompetenz, für Menschen, die professionell Software entwickeln:

Folgenden Gedanken im Hinterkopf zu haben:

Ich weiß nicht genau wie es geht, aber ich weiß, dass es geht
und ich kann herausfinden, wie.

Systemeinstellungen

Warum lagt Minecraft mit dem tollen neuen Mod und stürzt sogar ab, obwohl man doch extra einen Rechner mit 32GB RAM für das Spiel gekauft hat, das auch mit 4 schon flüssig laufen kann?

Java ist auch eine Anwendung im Kontext des Betriebssystems und wieviel Systemressourcen sie ihren Programmmodulen bereitstellt, ist einstellbar.

In diesem Teil werden wir uns auch den Einsatz von Java im Systemkontext ansehen, besonders auf dem Server Betriebsystem Linux.

Leistung optimieren mit Threads und Nebenläufigkeit, Streams und Serialisierung

Wenn Logik und Nutzerschnittstelle geklärt sind, stellt sich die Frage, wie man alles in kürzerer Zeit mehr Nutzdaten erzeugen lässt.

Da haben wir 4 6Kernprozessoren gemietet und es geht auch nicht viel schneller??? Und können wir eigentlich die Ergebnisse wiederkehrender Prozesse irgendwie zwischenspeichern?

Java im Netzwerk: Grundlagen für Serveranwendungen

Die wenigsten professionellen Java Anwendungen sind einfache Desktopprogramme und auch von diesen haben die meisten die Fähigkeit, mit dem Netzwerk zu kommunizieren.

Objekte und Methoden jenseits der eigenen Maschine mit RMI

Wenn Ihr Programm Netzwerken kann, kann es auch Funktionalitäten übers Netzwerk importieren.

Serialisierte Objekte sind dabei ein zentraler Bestandteil

Datenbanken mit JDBC

Keine Datenverarbeitung ohne strukturierte Datenspeicherung: Datenbanken können das am besten.

Andere Welten einbinden mit JNI

Ich habe da eine schöne Funktion, die ist aber in C und ich mache ja alles in Java...

Kein Problem: Software ist Software, JNI kann viele Sprachen

Sicherheit als Zauberwort und Praxis

Wenn Ihnen ein Auftraggeber mit absurden Wünschen kommt oder sich über eine Passwortabfrage beschwert, hilft Ihnen oft das Zauberwort Sicherheit !!

Wenn Sie ruhig schlafen möchten, sollten Sie allerdings wirklich ein paar Dinge darüber wissen, wie man Software vor unbefugter Benutzung und Daten vor Beschädigung schützt.


Beispiele:

Für Nachfragen per Email stehe ich gern zur Verfügung: zettberlinthe symbollinuxuse.de

Количество супов