zurück
left arrow
SSL-Version
SSL lock
(empfohlen)
aktuelles Thema: [Mawans Homepage]  [Papers]  [WWW-Seminar WS 95/96 Seitenende
down arrow
vorwärts
right arrow
andere Themen: [WWW-Seminar WS 95/96] 
gleiches Thema: [WWW-Seminar]  [WWW-Seminar - Zusammenfassung] 
Unterthemen: [Demos

MW logo

WWW-Seminar - Zusammenfassung

Blue ribbon logo


Entwicklung

Java wurde ab 1990 bei Sun Microsystems u. a. von Bill Joy und James Gosling entwickelt; ursprüglich dachte man dabei an den Einsatz in SetTop-Boxen, erst durch die zeitlich parallele Entwicklung des WWW ergab sich eine Nutzung auch in diesem Bereich. Der Begriff 'Java' entspricht in Amerika dem umgangssprachlichen Begriff für Kaffee.
Java hat eine C++-basierte Syntax, ist dynamisch, objektorientiert, portabel, architekturunabhängig, robust und sicher, enthält umfangreiche, betriebssystemunabhängige Standardbibliotheken und unterstützt Multithreading. Der Compiler erzeugt einen architekturunabhängigen Bytecode, der auf dem Zielsystem interpretiert wird.

Java im WWW

Java-Applets können in HTML-Seiten eingebunden werden; dadurch werden dynamische statt statischer Seiten möglich, was bessere Interaktion mit dem User erlaubt; außerdem das Netz weniger belastet, da nur ein Programm, nicht aber die aufbereiteten Daten übertragen werden müssen; die lokalen Rechenkapazitäten werden besser ausgenutzt.
Neue Datentypen stellen kein Problem mehr da, da für deren Darstellung keine neuer Browser, sondern nur der Java-Code benötigt wird, ein Java-fähiger Browser wird also 'automatisch geupdated'.
Der erste Browser, der überhaupt mit Java umgehen konnte, war HotJava von Sun Mircosystems.

Java-Programme

Java-Programme können in verschiedene Kategorien eingeteilt werden. Die wichtigsten sind Applications (das sind Stand-alone-Programme, wie z.B. der HotJava-Browser eines ist) und Applets (Programme, die innerhalb eines Browsers ablaufen sollen, in der Regel als Teil einer HTML-Seite).
Darüberhinaus gibt es noch sogenannte Protocol Handler und Content Handler, welche Java-kompatible Browser um die Interpretation zusätzlicher Protokolle und MIME-Typen erweitern.

Beispiel für eine einfache Java-Applikation:


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

Java-Programme werden mit dem Java-Compiler zu sogenanntem 'Bytecode' compiliert, einer Art Assembler-Code für eine fiktive Virtuelle Maschine (VM). Dieser plattformunabhängige Code kann dann über Netze übertragen werden und entweder von einem Java-Browser (bei Applets) oder einem Java-Interpreter (bei Stand-alone-Programmen) ausgeführt werden.

Hier noch ein Beispiel für die Einbindung eines Applets in ein HTML-Dokument:


  <html>
    <head>
      <title> Hello, World! </title>
    </head>
    <body>
      Und hier kommpt das Applet:
      <applet code="HelloWorld.class"> </applet>
    </body>
  </html>

Java: Die Sprache

Die Syntax von Java ist stark an die von C/C++ angelehnt. Wie in C/C++ gibt es auch in Java primitive Datentypen für Integer, Fließkommazahlen, Textzeichen etc. Im Gegensatz zu C/C++ sind die Formate dieser Datentypen festgelegt und damit implementations- und plattformunabhängig. Text z.B. wird grundsätzlich in Form von 16-bit Unicode-Zeichen gespeichert.

Arrays und Strings sind in Java vollwertige Objekte und werden nicht durch Zeigerarithmetik implementiert, wie dies in C/C++ der Fall ist. Array- und String-Zugriffe werden auf korrekte Indizierung überprüft und kennen ihre Länge.

Java unterstützt Einfachvererbung von Klassen, jedoch keine Mehrfachvererbung. Letztere kann jedoch konzeptionell durch sogenannte Interfaces nachgebildet werden. Interfaces stellen eine Art Schablone für Klassenschnittstelle dar, ohne eine Implementierung zu spezifizieren. Eine Klasse kann nun ein oder mehrere Interfaces implementieren, wodurch Klassen bezüglich eines Interfaces polymorph behandelt werden können.

Java unterstützt die parallele Ausführung mehrerer Threads. Einzelnen Threads können dabei unterschiedliche Prioritäten zugeordnet werden; die eigentliche Multitasking-Funktionalität muß jedoch vom unterliegenden Betriebssystem bereitgestellt werden. Java stellt außerdem Mechanismen zur Synchronisation von Threads zur Verfügung.

Die Heap-Verwaltung erfolgt in Java automatisch, d.h. dynamisch allokierte Speicherbereiche müssen nicht explizit wieder freigegeben werden; dies wird durch einen im Hintergrund laufenden Garbage-Collector erledigt.

Zur Vereinfachung der Sprache bzw. aus Gründen der Sicherheit wurden viele C/C++-Features nicht übernommen. Im einzelnen sind dies: globale Funktionen, Zeiger- und Referenztypen, Aufzählungstypen (enum), typedefs, structs und unions, Templates, Mehrfachvererbung, Überladen von Operatoren und Präprozessor-Direktiven.

Java-Quelltexte werden in sogenannten Packages organisiert, das sind Übersetzungseinheiten, welche eine oder mehrere zusammen compilierte Klassen enthalten. Packages können wiederum zu Packages zusammengefaßt werden, so daß sich eine hierarchische Struktur ergibt, welche üblicherweise in Verzeichnis-Hierarchien von Filesystemen abgebildet wird.

Sicherheit

Das Ausführen von fremden Code stellt ein Sicherheitsrisiko dar, da hier grundsätzlich Manipulationen möglich werden könnten, die vom User gar nicht gewünscht sind, z. B. Übertragung oder Löschen von Dateien.
Um dies bei Java zu verhindern, wurde Java schon von Anfang an als sichere Sprache entwickelt; dabei gibt es vier Sicherheitstufen:

Derzeitiger Stand und Zukunftsausblick

Seit 23.01.1996 gibt es die Java-Sprach- und API-Spezifikation jeweils in der Version 1.0, dazu das Java-Develpment-Kit Version 1.0 (für Solaris 2.[2,3,4] und Windows95/NT [x96]).
An Browsern existieren zur Zeit HotJava 1.0 alpha 3 (unterstützt alpha3-API) und Netscape Navigator 2.x (unterstützt beta2-API).
Für die Zukunft ist eine weitere Verbreitung von Java zu erwarten, da weitere große Firmen Java-Lizenzen erworben haben und bereits eigene Browser mit Java-Unterstützung angekündigt haben, z. B. IBM, Adobe, Oracle, SpyGlass u. a.
Borland ist dabei, eine plattformübergreifende Java-Programmierumgebung (Codename: Latte) zu entwickeln; von Symantec ist eine Java-Entwicklungsumgebung (Espresso) für Windows bereits in einer Alpha-Version verfügbar; eine Java-Schnittstelle zu CORBA ist angekündigt worden.
Zusätzlich gibt es noch JavaScript, eine stark abgespeckte Version von Java, die vom Browser interpretiert wird; ein Compilieren ist nicht erforderlich.

left arrow
zurück
(empfohlen)
SSL lock
SSL-Version
aktuelles Thema: [Mawans Homepage]  [Papers]  [WWW-Seminar WS 95/96 up arrow
Seitenanfang
right arrow
vorwärts
andere Themen: [WWW-Seminar WS 95/96] 
gleiches Thema: [WWW-Seminar]  [WWW-Seminar - Zusammenfassung] 
Unterthemen: [Demos

Letzte Änderung statischer Daten Tue, 07 Sep 2004, 14:17:37 CEST durch Martin Wanke <www@mawan.de>
sites overview Valid HTML 4.01!
Apache/2.4.10 (Debian) Phusion_Passenger/4.0.53 mod_python/3.3.1 Python/2.7.9 OpenSSL/1.0.1t mod_perl/2.0.9dev Perl/v5.20.2
client information
at www.mawan.de:80
contact