4.1 Java Grundlagen

Werbung
4 Objektorientierte
Programmierung mit Java
4.1 Java-Grundlagen
Highlights:
objektorientierte Sprache
Plattformunabhängigkeit bei Hardware
und Betriebssystem
optimale Einbindung im Internet und Intranet
sprachliche Nähe zu C++
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Historie:
1991 Ingenieure bei Sun Microsystems zu
Integration verteilter Informationstechnologie in
elektronischen Geräten: „Green Project“ unter
James Gosling zu Grundanforderungen wie
Zuverlässigkeit, Bedienbarkeit, Sicherheit...
Erweiterung der benutzten C++ Compiler
Erkenntnis: unpassend
Folge: „Green Team“ Softwaresystem für
elektronische Verbrauchergeräte zu entwickeln,
Name „Oak“ (später aus urheberrechtlichen Gründen
in „Java“ umbenannt)
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Historie:
Herbst ‘92 Patrick Naughton präsentiert System *7
(starseven), in Oak geschrieben, sollte
Betriebssystem mit Programmiersprache und
Entwicklungsumgebung für neue
Hardwareplattformen sein
dann Stagnation, aber
1994 WWW war etabliert
Naughton und Jonathan Payne mit Idee, einen
Web-Browser in Java zu schreiben
Java entwickelt für architektur-neutrale,
echtzeitfähige, zuverlässige und sichere
Client/Server - Anwendungen
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Historie:
Java entwickelt für architektur-neutrale,
echtzeitfähige, zuverlässige und sichere
Client/Server Anwendungen
ideal als Werkzeug für die Programmierung im
WWW
Folge: Arbeit an Web-Runner-Browser ,später in
Hot-Java umbenannt, begann
Java wurde selbst noch einmal neu in Java
geschrieben (offiziell auf der SunWorld95 im Mai ’95
vorgestellt, mit der kostenlosen Verfügbarkeit aus
dem Internet java.sun.com)
der DURCHBRUCH
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Objektorientiert:
Klassen, die Daten und Methoden(Verhalten)
enthalten
Klasse als Schablone, aus der viele Objekte
generiert werden können
Datenkapselung
(Einzel-) Vererbung
Schnittstellen können implementiert werden
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Verteilt:
Pakete = packages, Modularität
Funktionen für den Netzwerkzugriff integriert
(http, FTP)
Aufruf über mitgelieferte Bibliotheken, ähnlich den
Header-Dateien
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Robust:
Überprüfungsroutinen (beim Compilieren und
Ausführen)
dadurch auch Vermeidung von Laufzeitfehlern in
Anwendungen
Speichermanagement nicht dem Entwickler
überlassen, wird über die JVM
(Java Virtual Machine) realisiert
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
… Robust:
keine Pointerarithmetik, direkte Adressierung über
Pointer nicht möglich
Integer kann nicht zum Pointer gecastet werden
(geringere Fehleranfälligkeit beim Programmieren)
if(object != null) notwendig,
if(object) geht nicht, nur wenn object boolean
wäre
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Sicher:
geladener Code entspricht den Java-Regeln
wird beim Laden über das Netz nicht manipuliert
Schutz vor potentiellen Viren, da nicht Compiler,
sondern hardwareabhängiges Runtime-System
kein Zugriff auf physikalischen Speicherplatz
keine Manipulationen
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
… Sicher:
lokaler Code kann nicht durch importierten Code
überschrieben werden
keine Möglichkeit für Java-Anwendungen, direkt auf
Systemressourcen zuzugreifen
private bleibt private,
anders in C++:
#define private public
Softwareentwicklung / Programmierung II
vor dem ersten include
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Architekturunabhängig:
auf jeder Hardware- und Betriebssystemplattform
lauffähig
Compiler produziert keine maschinenspezifischen
Instruktionen, sonder einen neutralen Byte Code
Byte Code wird über einen Java Interpreter auf
jeder Plattform ausgeführt oder von einem
Just-in-Time-Compiler beim Start der Anwendung
übersetzt
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Portabel:
Größe der Basisdatentypen unabhängig von der
Prozessorarchitektur (nicht C++ int)
Einfache Datentypen:
bool
byte
short
int
long
float
double
char
Wahrheitswert
ganzzahlig
ganzzahlig
ganzzahlig
ganzzahlig
Fließkomma
Fließkomma
Unicode
Softwareentwicklung / Programmierung II
1 Byte
1 Byte
2 Byte
4 Byte
8 Byte
4 Byte
8 Byte
2 Byte
true / false
-128 .. +127
-32768 ... +32767
-2,14 *109 ... +2,14 *109
-9,22 *1018 ... +9,22 *1018
+/- 3,40 *10+/-38
+/- 1,80 *10+/-308
incl. ASCII
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Multithreaded:
Threads = parallele Ablaufpfade in einem
Programm, die gleichzeitig ausgeführt werden
erlaubt z.B. Darstellung von Animationen und
gleichzeitiges Abspielen von Musik, während eine
Internetseite gescrollt wird
Threads = Klasse, aus denen neue Thread-Objekte
generiert werden können
Methoden zum Starten, Ausführen und Anhalten
von Threads, Abfrage des Thread-Zustandes
Echtzeitfähigkeit
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Garbage Collection (Speicherplatz-Management):
keine Gedanken über Speicherplatzbelegung seines
Byte-Codes
Programmierer müssen nicht permanent Speicher
freigeben
malloc() und free() fehlen
Speicher wird freigegeben, wenn Objekte nicht
mehr referenziert werden
Softwareentwicklung / Programmierung II
Wellnitz
4.1 Java-Grundlagen
Eigenschaften:
Dynamisch:
Objekt-Klassen werden zur Laufzeit von JavaAnwendungen referenziert
diese können jederzeit verändert werden
JDK: Java Developement Kit (bzw. neu SDK)
kostenlos zu beziehen über http://java.sun.com
Softwareentwicklung / Programmierung II
Wellnitz
Herunterladen