Java

1. Geschichte und Einführung in Java



Java ist eine von Sun Microsystems entwickelte, vollkommen plattformunabhängige Programmiersprache mit spezieller Ausrichtung auf den Einsatz im World Wide Web. Die Sprache lehnt sich in Aufbau und Syntax an C/C++ an.
Java ist dazu geeignet, um Animationen, Simulationen, Echtzeitanwendungen, sowie interaktive Anwendungen wie Guided Tours, Spiele oder Kalkulationsanwendungen zu realisieren. All diese Dinge laufen im Anzeigefenster des java - fähigen WWW - Browsers ab.
Wichtige Eigenschaften von Java
    Objektorientiert: Java ist durchgängig objektorientiert und stellt dem Programmierer eine Fülle elementarer und komplexer Objekte bereit. Sichere Speicherverwaltung: Unter Java ist die Arbeitsspeicherverwaltung aus Programmierersicht wesentlich unkritischer als beispielsweise unter C. Es gibt keine durch Zeiger adressierten Speicherbereiche von unbestimmter Größe, sondern nur Speichervektoren von fest definierter Länge. Die fehlerarme Speicherverwaltung ist besonders wichtig, da Java - Programme ohne Portierungsaufwand in verschiedenen CPU - Umgebungen ablaufen sollen. Plattformunabhängige Programmdateien: Java - Programme werden wie herkömmliche Programme zu Objektcode compiliert, jedoch nicht in eine bestimmte Prozessor - oder Betriebssystem - Umgebung eingebunden, also nicht "gelinkt". Java - Programme laufen daher auf allen Plattformen, wenn ein Java - Objektcode - Interpreter installiert ist (bei WWW - Browsern ist dies die sogenannte "Java - Konsole").

2. Wie funktioniert Java?

Javaprogramme sind nicht für einen realen und von System zu System unterschiedlichen Prozessor geschrieben, sondern nur für einen virtuellen Prozessor, die Virtual Machine. Diese Virtual Machine setzt auf das Betriebssystem eines Rechners auf und läuft somit zwischen realem Prozessor und dem Javaprogramm. Der Programmcode wird dann ausgeführt und an den Prozessor angepaßt. Somit kann ein Javaprogramm auf jedem System ausgeführt werden, auf dem eine Virtual Machine läuft.
Eine Java Applikation besteht nicht aus einer lauffähigen und direktausführbaren Datei, sondern aus einer Anweisungsfolge von sogenannten Bytecode. Dieser Code wird dann von dem Java Interpreter interpretiert und zur Ausführung gebracht. Um mit dem von Sun mitgeliefertem Interpreter eine Applikation zu starten, gibt man folgenden Befehl ein: java programmname
Die Datei programmname.class enthält den Bytecode, der vom Interpreter interpretiert und somit zur Ausführung gebracht wird.
Java's Aufbau und Syntax lehnt sich sehr stark an die Programmiersprachen C, bzw. C++ an. Programmierer sind somit in der Lage sich schnell und ohne großen Aufwand von C oder C++ auf Java umzustellen.

3. Unterschiede zwischen Java und C ,bzw. C++

C++
Java
Konstanten
#define
Konstanten: final
Makros: import
Funktions - Prototypen
Reihenfolge der Methoden beliebig
Zeiger, Referenzen
Objektvariablen sind immer Referenzen
boolsche Werte mittels Integer
if (zahl=liefereWert()) ...
boolean - Typ -> Konstanten True, False
if((zahl=liefereWert())!=0) ...
Bereichsauflösungs - Operator ::
z.B.: KlasseX::mache(x);
BasisKlasse::mache(x);
Punkt auch nach dem Klassennamen
KlasseX.mache(x);
Basismethode mittels super
super.mache(x);
Strichpunkt nach Klassendeklaration
Kein Strichpunkt mehr
Aufruf des Basiskonstruktors mittels Initialisierer - Syntax
XKLASSE (): BKLASSE() { ... }
Aufruf von super im Konstruktorrumpf
XKLASSE () { super(); ...}
virtual
automatisch späte Bindung ausser bei private,static,final - Methoen
Ãœberladen von Operatoren
Überladen nicht mehr möglich
Default - Parameter
Keine Default - Parameter
const int max = 100;
final int max = 100;
Initalisierung direkt bei der Deklaration nicht möglich!
class X {
int anz;
static const int max;
... }
const int X::max = 100;
X::X(...) : anz(10) {...}
Initalisierung direkt bei der Deklaration möglich!
class X {
int anz = 10; static final int max = 100; ... }
Destruktor
finalize
Vererbung:
class A : public BasisKl {
... }
Vererbung:
class A extends BasisKl {
... }
Mehr zu diesem Thema
Zugriffsschutz
public,protected,private,...
Angabe gilt für alle Eigenschaften und Methoden des Objectes
Default: private
Zugriffsschutz
public,protected,private,...
muss bei jeder Eigenschaft und Methode angegeben werden
Default (=keine Angabe): freundlich für Klassen des eigenen package
Mehrfachvererbung
Interfaces
Mehr zu diesem Thema
Arrays
Arrays
Mehr zu diesem Thema
Strings
Strings
Mehr zu diesem Thema

613 Worte in "deutsch"  als "hilfreich"  bewertet