Schöpfungsgeschichte | Next |
Java ist eine Entwicklung von Sun Microsystems. Java wurde dort ab 1991 zunächst unter dem Namen Oak von James Gosling als "Abfallprodukt" des Green Project, einer TV Set-Top-Box mit intelligenter Fernbedienung für Home Entertainment, entwickelt. Die Entwicklungen des Green Project stießen aber nicht auf das erhoffte Interesse der anvisierten Zielgruppe. Mit dem Aufkommen des WWW wurde deutlich, dass HTTP/HTML und Java sich sehr gut ergänzen könnten; ab 1994 wurde daher der HotJava-Browser entwickelt. 1995 wurde der Java-Sourcecode in einer Alpha-Version zum kostenlosen Download freigegeben. Im Laufe des Jahres wird Java zum buzzword. Netscape kündigt die Integration von Java in ihren marktführenden Browser Navigator an. |
FirstPreviousNextLastExit | Slide 1 of 13 | COPYRIGHT © 2024 by the contributing authors |
Changelog | Next |
Der heutige Versionsstand von Java, d. h. des Sun JDK, ist 1.4.2. In der Abfolge der Java-Versionen gibt es einen deutlichen Bruch zwischen den Versionen 1.1 und 1.2 mit zum Teil erheblichen Veränderungen im API . Seither nennt Sun Java auch "Java 2 Standard Edition" (J2SE). Seit der Version 1.2 ist das API größtenteils abwärtskompatibel. Weiter Infos: -- Main.christo - 05 Nov 2003 |
FirstPreviousNextLastExit | Slide 2 of 13 | COPYRIGHT © 2024 by the contributing authors |
Objektorientierung | Next |
Das Ziel objektorientierter Sprachen ist es, Dinge der realen Welt programmatisch abbilden zu können. Die aus prozeduralen Sprachen bekannten Datenstrukturen werden dazu mit den sie bearbeitenden Funktionen zu einer Einheit verknüpft, dem Objekt. Einen vom Programmierer so definierten Datentyp nennt man eine Klasse. Die zu dieser gehörigen Daten nennt man Instanzvariablen, ihre Funktionen Methoden. Jede Methode hat eine eindeutige Signatur, bestehend aus dem Namen, dem Ergebnistyp und den Argumenttypen. Es können also mehrere Methoden gleichen Namens in einer Klasse definiert werden, diese müssen jedoch denselben Ergebnistyp haben (Methoden-Überladung). Die Menge der Werte der Instanzvariablen eines Objektes nennt man dessen Zustand. Eine Klasse kann ihre Eigenschaften und ihr Verhalten an eine andere Klasse weitergeben. Diesen Mechanismus nennt man Vererbung. Objekte können ihre Instanzvariablen vor dem Zugriff anderer Objekte schützen (Kapselung). Diese sind dann gegebenenfalls nur über entsprechende Zugriffsmethoden von außen zugänglich. -- Main.christo - 06 Nov 2003 |
FirstPreviousNextLastExit | Slide 3 of 13 | COPYRIGHT © 2024 by the contributing authors |
Eigenheiten der Sprache Java | Next |
Hinter Java verbirgt sich nicht nur eine moderne Programmiersprache, sondern eine ganze Reihe neuartiger Technologien: Java schänkt die Freiheiten des Programmierers relativ stark ein; hält ihn dadurch aber gleichzeitig davon abhält, eine Vielzahl von ansonsten häufigen Fehlern zu begehen. ObjektorientierungJava ist eine konsequent objektorientierte Sprache. Jeder Schnipsel Programmcode muss daher logisch in einen Objekt- oder Klassenkontext geklammert werden.VererbungJava verwendet das Konzept der Objektklassen. Die Klassen sind durch (Einfach-)Vererbung in einer Hierarchie organisiert. Implizite Basisklasse ist dabei stets java.lang.Object. Neben den Klassen gibt es in Java das Konzept der Interfaces. Klassen können beliebig viele Interfaces implementieren.TypisierungJava verwendet das Konzept der Objektklassen und besteht auf strikter Typisierung. Das bedeutet insbesondere, dass es in Java keine Zeiger und somit keine Zeigerarithmetik gibt, sondern nur Referenzen. |
FirstPreviousNextLastExit | Slide 4 of 13 | COPYRIGHT © 2024 by the contributing authors |
Die Laufzeitumgebung | Next |
In Java geschriebene Programme werden i. A. nicht mit Hilfe eines Kompilers in den Maschinencode eines bestimmten Prozessors übersetzt, sondern in einen abstrakten Bytecode. Dieser Code wird dann von einem Interpreter, der Java Virtual Machine (JVM), auf der tatsächlichen Hardware ausgeführt ("Compile once, run anywhere"). Just-in-Time Kompilierung (JIT)Interpretierte Programme laufen wesentlicht langsamer ab als zuvor in Maschinencode übersetzte. Die Java-VM verwendet daher einen Just-in-time Compiler der den Bytecode beim Laden des Programms in Maschinencode übersetzt, der später wesentlich schneller ausgeführt werden kann.Der Garbage CollectorAlle von einem Programm erzeugten Java-Objekte landen auf dem Heap der JVM. Nicht mehr benötigte Objekte müssen dabei nicht von Hand vernichtet werden, sondern werden vom Garbage Collector automatisch entsorgt. |
FirstPreviousNextLastExit | Slide 5 of 13 | COPYRIGHT © 2024 by the contributing authors |
Hello World! | Next |
class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } |
FirstPreviousNextLastExit | Slide 6 of 13 | COPYRIGHT © 2024 by the contributing authors |
Was heißt das? | Next |
deklariert die Klasse HelloWorld.
|
FirstPreviousNextLastExit | Slide 7 of 13 | COPYRIGHT © 2024 by the contributing authors |
Kompilieren und ausführen | Next |
Die Klasse HelloWorld wird in der Datei HelloWorld.java gespeichert. Dann wird der Java Compiler aufgerufen mit javac HelloWorld.java . Dieser erzeugt die Datei HelloWorld.class im gleichen Verzeichnis.
Diese kann nun durch java HelloWorld aufgerufen werden.
-- Main.christo - 05 Nov 2003
Java orientiert sich sehr stark and der Syntax von C.
|
FirstPreviousNextLastExit | Slide 8 of 13 | COPYRIGHT © 2024 by the contributing authors |
Kommentare | Next |
Kommentar bis zum Zeilenende://
Mehrzeiliger Kommentar/* blabla mehr blabla noch mehr blabla */ JavaDoc Kommentar/** javadoc erzeugt hieraus später eine schöne API-Dokumentation! @see woanders */ |
FirstPreviousNextLastExit | Slide 9 of 13 | COPYRIGHT © 2024 by the contributing authors |
Anweisungen | Next |
Anweisungen werden durch ein Semikolon beendet, nicht aber durch einen Zeilenumbruch! DeklarationenHund waldi = new Hund();Mit Hilfe des new Operator wird Speicherplatz für ein =Hund= Objekt reserviert und eine Referenz darauf zurückgegeben.
DatentypenJede Java-Klasse ist gleichzeitig ein Datentyp. Neben den Java-Klassen gibt es noch eine Reihe von primitiven Typen:
|
FirstPreviousNextLastExit | Slide 10 of 13 | COPYRIGHT © 2024 by the contributing authors |
Fallunterscheidungen | Next |
ifif (bedingung) { ... //then } else { ... //else } switchswitch (ausdruck) { case fall1: ... break; case fall2: ... default: ... } (funktionale) Fallunterscheidung für Ausdrücke(bedingung)?dann_ausdruck:sonst_ausdruck |
FirstPreviousNextLastExit | Slide 11 of 13 | COPYRIGHT © 2024 by the contributing authors |
Schleifen | Next |
whilewhile (bedingung) { ... } dodo { ... } while (bedingung); forfor (initialisierung, fortlaufbedingung, anweisung) { ... } klassisch:for (int i = 0, i < 42, i++) { ... } objektorientiert:for (Iterator i = eineListe.iterator(), i.hasNext(),) { Object elem = i.next(); ... }Siehe %JAVADOC{java.util.Iterator}% |
FirstPreviousNextLastExit | Slide 12 of 13 | COPYRIGHT © 2024 by the contributing authors |
Operatoren | Next |
Operatoren sind typabhängig.
|
==, != | Gleichheit, Ungleichheit |
! | Negation |
&, | | Und, oder (vollständige) Ausführung |
&&, || | Und, oder (Abkürzung) |
^ | Exclusives oder |
==, != | Gleichheit, Ungleichheit | |
<, > <= >= | Ordnung | |
+, - | Vorzeichen | |
+, -, *, / | Grundrechenarten | |
% | Modulo | |
++, -- | In-,Dekrement | |
<<,>> | Links-, Rechts-Shift mit Vorzeichenerhaltung | nur Ganzzahlen |
>>> | Rechts-Shift ohne Vorzeichenerhaltung | |
~ | Bitweise Negation | |
&, | | Bitweises Und, Oder | |
^ | Bitweises exklusives Oder |
FirstPreviousNextLastExit | Slide 13 of 13 | COPYRIGHT © 2024 by the contributing authors |