Java Grundlagen – Block1 (Einführung in die Tool-Landschaft) – Tag 1

Words
500
Reading
3 min
Listen
Play
5y

Hallo zusammen,

ich nehme derzeit an einer Akademie zum Java Fullstack Software Engineer teil. In den kommenden Wochen möchte ich hier meine Mitschrift, so gut es geht, aufzeichnen und mitteilen. Hier ist das, was ich vom ersten Tag gelernt und behalten habe:

Block 01 Einführung in die Tool-Landschaft (Eclipse, GIT/GitLab, Build-Prozess mit Maven/Gradle)

Evolution eines Java Entwicklers

Der typische Java Entwickler durchläuft mehrere Stufen. Am Anfang schlägt er sich mit der Syntax und Datentypen rum und am Ende mit Aspekt Orientierter Programmierung:

  • Interfaces sind auch Datentypen
  • Design Pattern: Bubblesort, Singelton (Nur ein Object er Klasse (z.B. nur ein Bundestag))
  • Reflection API
  • AOP-Aspekt orientierte Progammierung
  • Dependency Incection

Noch dramatischer sieht das auf der Grafik von Oracle aus:

Quelle: java-developer-roadmap.png (aus dem Internet vom Trainer)

Die Umgebung eines Java Entwicklers:


Jeder Entwickler arbeitet auf einem lokalen Workspace. Zusätzlich hat er ein Repository, in welchen er seinen Workspace, aber auch Libraries aus anderen Quellen repliziert. Diese Daten werden in der Regel von einem Proxy (z.B. Nexus) geholt, welcher sie aus dem Internet holt.
Der Code wird in einem Projektverwaltungstool wie Gitlab oder Github mit mehreren Kollegen bearbeitet und zusammengefügt.
Pipelines (CI/CD) erstellen daraus Pakete.
Diese Pakete werden dann über Docker / Kybernetes auf Server deployt.

Nexus Einstellungen

Nexus ist ein Proxy, z.B. für MVN-Repositories.
Die Proxi-Eistellungen befinden sich unter dem Userverzeichns/.m2

In der pom.xml steht, welche jar-Files aus dem Internet in das Repository gelegt werden.

HelloWorld.java

Mit einem einfachen Editor (hier: Notepad++) erstellen wir unseren ersten Java-Code.
Zuerst schreiben wir nur:

public class HelloWorld {}

dann speichern wir es unter "HelloWorld.java" und compillieren es. Es gibt keine Fehlermeldung. Erst beim Aufrufen des Programms.
Also fügen wir die Hauptmethode hinzu.
String[] args bedeutet, dass der Main-Methode Parameter übergeben werden können (vom Typ String Vektor):

Es werden beim compilieren ganz viele Klassen geladen. Startet man das Java Programm mit -verbose kann man diese sehen:

Package

Im Workspace kann man seine Datei an einem beliebigen Platz/Order abspeichern. Um einen bezug zueinander zu haben, bzw. die Datei eindeutig zu beschreiben, fügen wir oben im Code den Befehl "package" hinzu. Die Notation ist in umgekehrter URL-Reihenfolge und immer klein geschrieben. Beispiel:

Paket erstellen

Folgendes ginge:
tar -czf mylib.tgz de
(Das Verzeichnis "de" wird in die Datei "mylib.tgzz" komprimiert.)

Besser ist aber:
jar -cf mylib.jar de

Den Inhalt kann man anzeigen mit:
jar -tf mylib.jar

Man kann auch ein Java Programm direkt aus einem jar-File aufrufen mit dem Parameter -classpath:

Dokumentation

der Befehl "javadoc" erzeugt zum Code eine dazugehörige Dokumentation, wenn diese im Code schon sauber gepflegt wurde. Dazu sollte sich der Programmierer angewöhnen dies auch zu tun.
/** läutet dabei die Kommentarzeilen ein, die durch javadoc ausgewertet werden */

Öffentliche Bibliotheken

Dies ist die "allwissende Müllhalde" , weil dort auch viel veraltetes drin steht:
https://docs.oracle.com/javase/8/docs/api/
Dort steht z.B. die Definition der Klasse "String" drin


------------------------------------------------------------------------------------------
Java RoadMap
- https://www.oracle.com/java/technologies/java-se-support-roadmap.html


MVN Repository
------------------
https://mvnrepository.com/

Versionsprüfung
-----------------
java -version // Version Laufzeitumgebung
javac -version // Version Compiler

JAR - JavaArchive:
---------------------
-> jar-Kommando

jar -cf mylib.jar de // Archiv erzeugen
jar -tf mylib.jar // Archiv-Inhalt anzeigen

java -classpath mylib.jar de.firma.abt.proj.HelloWorld // Ausführen eines Java-Programmes aus einen ava-Archiv herraus

Dokumentation
-----------------
Java-Doc-Kommentar
/**
……..
*/

javadoc -d doc HelloWorld.java


API - Applikaction Programming Interface
----------------------------------------------
https://docs.oracle.com/javase/8/docs/api/
https://docs.oracle.com/en/java/javase/11/docs/api/

Java Grundlagen – Block1 (Einführung in die Tool-Landschaft) – Tag ... | Ecency