Zum Inhalt springen

Java (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. Februar 2003 um 02:33 Uhr durch Hafenbar (Diskussion | Beiträge) (Java-Applets stark gekürzt, Inhalt jetzt in neuem Artikel). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Java ist eine Programmiersprache. Sie wurde ab 1991 von Patrick Naughton, James Gosling und anderen Ingenieuren des amerikanischen Computerherstellers Sun Microsystems entwickelt. Ziel war eine schlanke Sprache für Kleingeräte mit geringer Hardwarekapazität. Offiziell wurde Java erstmals am 23. Mai 1995 vorgestellt. Der Begriff leitet sich von einer scherzhafte Bezeichnung für Kaffee ab.


Der Entwurf der Sprache verfolgte vier Hauptziele:

  1. Objektorientierung
  2. Plattformunabhängigkeit (d.h. Unabhängigkeit vom Betriebssystem)
  3. Vernetzbarkeit
  4. Sichere Ausführung auf entfernten Computern

Java ist plattformunabhängig. Dies wird dadurch erreicht, dass es sich bei einem Java-Programm nicht um ausführbaren Code (Maschinencode) handelt, sondern um einen maschinenunabhängigen Java-Bytecode. Dieser wird auf der jeweiligen Maschine durch einen Interpreter ausführt oder unmittelbar beim Laufen des Programms "Just In Time" in Maschinencode übersetzt (JIT-Compiler). (die sogenannte Java-Maschine oder Virtuelle Maschine). Solche Java-Maschinen sind für alle gängigen Betriebsysteme zu haben (Linux, Windows, Mac, Palm-OS, ...). Es gibt auch Hardware-Lösungen, also kleine Prozessoren, deren Maschinensprache selbst der Java-Bytecode ist.

Im Unterschied zu C/C++ ist diese Sprache rein objektorientiert. (Eigenarten sind: Es gibt nur einfache Vererbung, alle Objekte haben eine gemeinsame Oberklasse: die Klasse Object)

Die Grunddatentypen sind jedoch elementar (primitiv), d.h. keine Objekte.

  • boolean (Werte sind true und false)
  • char (16-bit Unicode-Wert)
  • byte (8 bit, Zweierkomplement-Darstellung)
  • short (16-Bit Ganzahl, Zweierkomplement-Darstellung)
  • int (32-Bit Ganzzahl, Zweierkomplement-Darstellung)
  • long (64-Bit Ganzzahl, Zweierkomplement-Darstellung)

Beispiele für literale Werte

  • 'c' char
  • true boolean
  • false boolean
  • 123 int
  • 5230L long
  • 12.730 double
  • 12.730D double
  • 12.730F float
  • 12.730e3 double

Um große Projekte strukturieren zu können und saubere Schnittstellen zu Bibliotheken zu schaffen, können die Klassen zu Paketen (Packages) zusammengefasst werden. Die Zugriffe auf Klassen und Methoden eines fremden Packages können - ähnlich wie innerhalb einer Klasse durch private und public - geregelt werden.

Weiter unterstützt die Sprache Threads (gleichzeitig ablaufende Programmteile) und Exceptions (wörtlich: Ausnahmesituationen, das sind Objekte, die bei der Unterbrechung des Programm-Ablaufes an die nächst höhere aufrufende Methode weitergereicht werden.)

Zu Java gehört eine umfangreiche Klassenbibliothek. Dem Programmierer wird damit eine einheitliche, vom zugrunde liegenden Betriebssystem unabhängige, Schnittstelle (Application programming interface, API) angeboten.

Üblicherweise wird der Java-Programm-Code in eine Reihe von Byte-Codes übersetzt, die dann auf einer Virtuellen Maschine ausgeführt wird.

Eine Besonderheit von Java sind auch die Java-Applets, Java-Programme, die von HTML-Seiten aufgerufen werden und innerhalb eines Web-Browser ablaufen.

Java ist nicht mit der Programmiersprache JavaScript zu verwechseln, die ebenfalls in Webbrowsern verwendet wird. Sie hat eine ähnliche Syntax, kennt aber keine Vererbung. Die Objekte werden prototypenbasiert definiert.


Ein Beispielprogramm, das eine Meldung auf der Konsole ausdruckt:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}


Kontrollfluss-Strukturen

Schleifen


while (Boole'scher Ausdruck) {
    Anweisung(en)
}


do {
   Anweisung(en)
} while (Boole'scher Ausdruck);


for (Initiallisierung ; Endbedingung ; Inkrement) {
   Anweisung(en)
}


Wenn-Dann-Anweisungen

if (Boole'scher Ausdruck) {
   Anweisung(en)
}


if (Boole'scher Ausdruck) {
      Anweisung(en)
} else {
      Anweisung(en)
}

Mit else if können beliebig komplexe Wenn-Dann-Anweisungen konstruiert werden

if (Boole'scher Ausdruck) {
    Anweisung(en)
} else if (Boole'scher Ausdruck) {
    Anweisung(en)
} else if (Boole'scher Ausdruck) {
    Anweisung(en)
} else {
    Anweisung(en)
}


switch (Integerausdruck) {
   case konstanter Integerausdruck:
        Anweisung(en)
        break;
   ...
   default:
        Anweisung(en)
        break;
}


Ausnahmebehandlung

try {
    Anweisung(en)
} catch (Bezeichnung des Ausnahmetyps) {
    Anweisung(en)
} catch (Bezeichnung des Ausnahmetyps) {
    Anweisung(en)
} finally {
    Anweisung(en)
}


Sprunganweisungen

Man kann vor Schleifen ein Label setzten

meinLabel: eineSchleife (for/while/do);

Die Anweisung

break;

ohne Label beendet die innerste Schleife


Das Label kann dann benutzt werden um z.B. aus einer inneren FOR-, einer WHILE oder einer DO-Schleife direkt in eine äußere auszubrechen.

break meinLabel;

Eine continue-Anweisung beendet den aktuellen Iterationsschritt fährt mit der nächsten Schleifeniteration weiter.

continue;

Analog kann mit

continue label;

direkt in einer äußeren Schleife weitergefahren werden.


Die Anweisung

return;

beendet eine Methode.

Mit

return einWert;

kann der aufrufenden Methode ein Wert übermittelt werden

Versionen

  • JDK 1.0, 1996
  • JDK 1.1, 1997
  • JDK 1.2, 1998 (ab diesem Zeitpunkt spricht man von der Java 2 Plattform.
  • JDK 1.3, 2000
  • JDK 1.4, 2002

Siehe auch