Empfehlenswerte Literatur

Werbung
Empfehlenswerte Literatur
• Flanagan, David: Java in a Nutshell,
Nutshell O‘Reilly, UK,
2002 (50 €)
• Online Referenzen unter
• http://www.wi3.uni-erlangen.de/lehre/
• http://java.sun.com
• http://www.javaworld.com/
• Online Tutorials:
Tutorials
• http://java.sun.com/docs/books/
1
Entwicklung der
Programmiersprachen
Ada 9
2
Java
Object COBOL
1990
Eiffel
Oberon
C++
ObjectPaskal
ObjectiveC
CLOS
Modula2
SmalTalk80
Ada
1980
Loops
SmalTalk76
Paskal
C
Prolog
SmalTalk72/74
Agenda:
- OOP
1970
- Kein OOP
PL/1
Simula
COBOL
1960
LISP
Algol
Fortran
Java - Eine objektorientierte
Programmiersprache
• 1991 durch SUN
Microsystems initiiert.
Green Team
Quelle: SUN
• Java auch unabhängig von
Webapplikationen.
• Java Virtual Machine (JVM) Designziele:
• Java Software Development • Objektorientiert
Kit (J2SDK)
• Einfach
• Robust
• Plattformunabhängig
• Sicher
• Verteilt
• Performant
• Multithreaded
• Frei verfügbar
3
Java-Editionen - Übersicht
4
Vergleich: Java vs. „Der Rest“ (1)
5
Vorgehensweise in „anderen“ Programmiersprachen
Sourcecode
Compiler für
Prozessortyp A
Compiler für
Prozessortyp B
Compiler für
Prozessortyp C
Objekt-Programm
(Binär-Code)
für Prozessortyp A
Objekt-Programm
(Binär-Code)
für Prozessortyp B
Objekt-Programm
(Binär-Code)
für Prozessortyp C
(+)Optimale Ausnutzung der jeweiligen Prozessoreigenschaften;
dadurch hohe Abarbeitungsgeschwindigkeit der kompilierten Programme
(–) Das kompilierte Programm läuft nur auf dem jeweiligen Prozessortyp
(–) Für jeden Prozessortyp muss das Programm mit einem anderen Compiler
neu kompiliert werden
(–) Programmiersprachen nicht plattformübergreifend definiert
Vergleich: Java vs. „Der Rest“ (2)
6
Vorgehensweise in Java
Sourcecode
(Java)
Compiler für Java
Objekt-Programm (Byte - Code)
Plattformunabhängig
Java Interpreter für
Prozessortyp A
Java Interpreter für
Prozessortyp B
Java Interpreter
für Prozessortyp C
(+)Für alle Prozessortypen ein Compiler
(+)Unabhängig von allen Plattformen exakt definiert
(gleiche Funktionen überall)
(+)Nur einmaliges Kompilieren
(–) Die übersetzten Programme laufen im Vergleich zu kompilierten langsamer
(–) Für jeden Prozessortyp ist ein Java-Interpreter nötig
Vergleich: Java vs. „Der Rest“ (3)
7
Sprachmerkmale
•
•
•
•
Garbage Collector
Spezielle Fehlerbehandlungsroutinen
Unterscheidung zwischen „eigene“ und „fremde“ Komponenten
Mehrstufige Prüfung der Klassen/Programmmodulen
Compiler
Class Loader
Class-/Bytecode-Verifier
Security Manager
Laufzeitumgebung
Sichere Sprache Java, keine gefährlichen Konstrukte
Klasse stammt aus zuverlässigem Bereich
Format der Klassendatei sowie Bytecode werden überprüft
Implementierung der Sicherheitsstrategien
Implementierung der sicheren Semantik von Java
Java 2 Software Development Kit
8
Laufzeit- und Entwicklungsumgebung
• Werkzeuge
J2SDK
•
•
•
•
•
•
•
•
•
Javac è Compiler (.java)
Java è Interpreter (.class)
Appletviewer (.html)
Javadoc è Erstellung von HTML – Dokumentationen
Jdb è Debugger
Jar è Java Archiver (.jar)
Diverse Tools zum Signieren und Policy-Verwaltung
Tools zum Kompilieren von Verteilten Anwendungen
Tools zum Erzeugen von C/C++ Interface Dateien
J2SDK-Doc • HTML-Dokumentation
Java und seine Vielfältigkeit
• Unterschiedliche Struktur / Konzepte / Aufbau der Javaprogramme je
nach Einsatzgebiet
• Es wird unterschieden zwischen:
•
•
•
•
•
•
•
Java Standalone Application
Java Applet
Java Servlets
Java Ser ver Pages
Enterprise Java Beans
Verteilte (Client/Server) Anwendungen
...
• Für jede Art genaue Spezifikation in Form von API + „Vorschriften“
• Diverse APIs für Unterschiedliche Techniken:
•
•
•
•
•
•
JAAS
JCE
Java Speech API
Java 3D API
JAXP
...
9
Agenda
• Motivation, Einführung:
• Allgemeines
• Die ersten Schritte
10
Erste Schritte
Programmaufruf
Ausgabe
11
12
Aufbau eines Java Programms (1)
Paketdeklaration
Klassendeklaration
Der Sourcecode befindet sich in der Textdatei mit dem Namen „FirstApp.java“.
Die Datei liegt in der gleichen Verzeichnisstruktur, wie auch der Paketname.
13
Aufbau eines Java Programms (2)
Methodendeklaration
Klassenrumpf
Methodenrumpf
Anweisung
Merke:
• Immer eine Klasse in einer SourceSource-Datei.
Datei
• Methoden immer innerhalb der Klasse.
14
Aufbau eines Java Programms (3)
• Mindestens 1 Klasse, die durch class
gekennzeichnet wird.
• Hinter class steht der spezifische Klassenname.
• Alles was dahintersteht und zur Klasse gehört, wird
in geschweifte Klammern {} eingeschlossen.
• Eine Klasse kann mehrere Operationen (in Java
Methoden) enthalten (z.B. main)
• Alles was anschließend folgt, die Methode also
näher beschreibt, wird wieder in geschweifte
Klammern eingebunden.
15
Kompilieren eines Java Programms
• Setzen der Umgebungsvariablen:
• path – legt fest, in welchen Verzeichnissen das Betriebssystem
die ausführbaren Programme und Programmressourcen suchen
soll
• classpath – legt fest, wo die JVM die benötigten .java und
.class Dateien suchen soll
• Aufruf in der Kommandozeile:
set path=d:\j2sdk1.4\bin;%path%
set
classpath=d:\myDir\classes;d:\myDir\libs;%classpath%
• Kompilieren:
javac –d <zielverzeichnis> datei1.java
javac –d <zielverzeichnis> dir1/dir2/datei2.java
javac –d <zielverzeichnis> dir1/dir2/*.java
Aufruf eines Java Programms
Starten der JVM mit dem Programmnamen
(Klassennamen) als Parameter
Ablauf:
• Laden der JVM durch Betriebssystem
• Übergabe des Parameters an JVM
• Suchen und Laden der Klasse durch JVM
• Identifizieren und Ausführen der Methode:
public static void main(String args[])
• Ausführen der Anweisungen
• Bereinigen des reservierten Speichers
• Entladen der JVM durch Betriebssystem
16
17
Schlüsselwörter
Java- Schlüsselwörter
Klassen/
Objekte
-class
-interface
-new
-extends
-implements
-instanceof
-return
Schleifen
-do
-while
-for
-break
-continue
Modifier
-private
-protected
-public
-abstract
-final
-native
-static
-synchronized
-transient
-volatile
Bedingungen
-if
-else
-switch
-case
-default
primitive
Datentypen
Fehlerbehandlung
-byte
-short
-int
-long
-float
-double
-boolean
-char
-try
-catch
-throw
-throws
-finally
Packaging/
Module
-package
-import
Konstanten/
Referenzen
-this
-super
-void
-null
-true
-false
Herunterladen