SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

GUIDES UND TUTORIAL

Skript-Sprachen

Über Bilder, Animationen, VRML hinaus kann in Webseiten auch Programmcodefür Interaktionen mit Formularen oder zur direkten Ausführung durch den Benutzer eingefügt werden. Typische Vertreter sind Programmiersprachen wieJava, JavaScript oder ActiveX. Neuestes Lieblingskind der "Zappel-Fraktion" istFLASH, denn hier wird Interaktion und Animation vereint.

Java

In Java wurden zum zum einen erfolgreiche Konzepte aus bereits bestehenden Sprachen (z.B. C, C++, Smalltalk, Eiffel, Ada, Objectiv-C) übernommen, zum anderen neue Konzepte verwirklicht.

Java ist eine junge Interpretersprache, die viele mächtige Konzepte in sinnvoller Weise integriert. Sie völlig objekt-orientiert, interpretiert, einfach, architekturneutral, portabel und sicher. Eine gute Performance kann durch Multithreading und optionalen Nativecode erreicht werden. Ausgiebige Compilierzeitüberprüfungen und strikte Laufzeitckecks garantieren ein robustes und sicheres Verhalten der Applikationen. Sie kann somit neben der Möglichkeit des schnellen Prototyping als eine stabile Basis für verteilte und erweiterbare Systeme dienen.

Die wesentlichen Gesichtspunkte sind:

  • Objektorientiert
  • Eigenschaften
  • Architekturunabhängig und portabel
  • Robustheit
  • Multithreading
  • Garbage Collection
  • Sicherheit

Java ist objektorientiert

Java ist vollkommen object-orientiert. Jede objekt-orientierte Sprache sollte Minimum der folgenden Charakteristiken in sich haben:
  • Encapsulation: Informationen (oder genauer Attribute und Methoden) werden gekapselt, d.h. konkrete Implementierung und Strukturen sind f&uumr den Anwender nicht sichtbar. Lediglich Funktionalit&t und Interface eines Objektes werden bekanntgegeben.
  • Inheritance: Subklassen "erben" Inhalte von Klassen
  • Dynamic binding: ermöglich ein Maximum an Flexibilität zur Laufzeit
All diese Anforderungen werden von Java in hohem Maße erfüllt. Es werden sogar zusätzlich weitere runtime-features geboten, die die Software-Entwicklung einfacher machen können.

Wichtige Begriffe in diesem Zusammenhang die auch in Java vorkommen sind:

Klassen:Definiert Attribute und Methoden
Object :instanzierte Klasse
Message:Aufruf einer Methode eines anderen Objektes
Constructor:Methode, die die Initialisierung eines einer Klasse instanzierten Objektes vornimmt
Destructor:Gegenstück zum constructor.
Access Control:Bei der Deklarierung einer Klasse können Attribute und Methoden mit verschiedenen Zugriffsleveln (public, protected, private, friendly) versehen werden.
Abstract Methods:Methoden, die in einer Klasse deklariert werden, deren Implementierung aber erst in einer Subklasse erfolgt.
Packages:Java-konstrukt, das eine Sammlung von zusammengehörenden Klassen bildet.

Wichtige Eigenschaften von Java

  • Objektorientierung
  • Multithreading
  • Robustheit
  • Sicherheit
  • Erweiterbarkeit
  • Plattformunabhängigkeit

Was Java hat

  • import: vergleichbar dem IMPORT von Modula-2.
  • interface: ein geschickter Ersatz für die Mehrfachvererbung.
  • Garbage Collection
  • Verbesserte Ausnahmebehandlung
  • Wohldefinierte Klassenhierarchie

Eigenschaften, die nicht von C oder C++ übernommen wurden:

  • In Java gibt es keine Präprozessor-direktiven (wie z.B. #define) mehr.
  • Es gibt keine Headerfiles, dafür aber interfaces, die die Definition anderer Klassen und deren Methoden beinhalten.
  • Multiple Inheritance wurde durch Interfaces ersetzt, die Methodendefinitionen von Klassen gleichgesetzt werden können.
  • Kein "goto"-statement (definiert, aber nicht implementiert).
  • Kein Operator-overloading.
  • Keine Pointer.
  • Keine Typdefinitionen.
  • Keine Variante Records (union).
  • Keine generische Typen (templates).
  • Keine Mehrfachvererbung.
  • Keine vorzeichenlose Zahlentypen.
  • Keinen direkten Hardwarezugriff.

Java ist architekturunabhängig und portabel

Durch die Verwendung von byte-code im Gegensatz zum Binärcode ist Java völlig architekturneutral. Java-Programme lassen sich auf allen Plattformen ausführen, auf welche die Virtual Machine portiert wurde. Portierungen werden durch die strikte Sprachspezifikation unterstützt.

Java ist robust

Java ist eine Sprache, die gedacht ist für robuste, zuverlässige und sichere Applikationen. Um dies zu erreichen wird ein striktes compile-time checking durchgeführt, das es ermöglicht Syntaxfehler früh zu entdecken. Java ist eine sehr typorientierte Sprache. Viele C-Freiheiten, wie etwa implizite Deklaration von Funktionen sind nicht erlaubt. Besondere Stützen der Robustheit sind die Abschaffung von Pointern, die Verwendung von echten Arrays, ein Speichermodell, das die unerlaubte Überschreibung von Speicherbereichen verhindert und strengere Casting-Regeln.

Java ist multithreaded

'Multithreaded programming' ist in den meisten bisherigen Programmiersprachen sehr oft ein schwieriges (oft sogar unmögliches) Unterfangen. Java stellt zur Programmierung und Verwaltung von threads eine eigene Klasse zur Verfügung. Von dieser können threads als ein neues Objekt instanziert werden. In ihr werden Methoden zum Starten, Stoppen und Abfragen des Statuses des threads bereitgestellt.

Die größten Probleme tauchten bisher bei der Synchronisation der threads und bei der Vermeidung von deadlocks auf. Java stellt eine Menge von synchronization primitives zur Verfügung, die im Wesentlichen auf das von C.A.R. Hoare eingeführte monitor and condition variable-Paradigma basieren.

Java stellt eine auf Sprachebene integrierte Multithreadingunterstützung bereit. Damit können Methoden auf einfache Weise synchronisiert und das Problem der concurrency gelöst werden. Methoden laufen dann unter Aufsicht eines 'Monitors', der sicherstellt, daß Variablen in einem konsistenten Zustand bleiben.

Java hat einen Garbage Collector

Java hat einen integrierten Garbage Collector, der als ein Hintergrundthread mit niederer Priorität implementiert ist. Der GC dealloziert Objekte, die nicht mehr referenziert werden. Bei der Programmierung äussert sich dies darin, dass Objekte nicht explizit dealloziert werden müssen (z. B. im Destructor). Letzteres ist zwar möglich, aber es entscheidet der GC.

Java ist sicher

Bereits bei der Konzeption von Java wurden grundlegende Überlegungen bezüglich der Sicherheit angestellt. Der Java-Compiler und das Laufzeitsystem integrieren mehere Abwehrschichten gegen potentiell gefährlichen Code. Am wichtigsten ist sicherlich das Speicherallozierungs- und -referenzierungsmodell. Entscheidungen über die Speicherbelegung werden nicht vom Compiler (wie in C oder C++), sondern erst zur Laufzeit vorgenommen. Intern verwendet Java sogenannte 'handles' die zur Laufzeit in physikalische Addressen aufgelöst werden. Dies geschieht sehr spät und z. T. auch abhängig von der Architektur, jedoch völlig transparent für den Programmierer.

Was passiert, wenn gefährlicher Code auf einen Server generiert und zur Laufzeit auf dem client ausgeführt wird? Obwohl der Java-Compiler beim übersetzen das Einhalten von bestimmten Sicherheitsregeln garantiert, bleibt er natürlich machtlos, wenn Code-Fragmente zur Laufzeit on-the-fly gelinkt werden. Wie kann also das Laufzeitsystem dem hereinkommenden byte-code stream vertrauen, der vielleicht von einem nicht vertrauenswürdigen Compiler erzeugt wurde? Die Antwort ist einfach: Java traut dem Code nicht und unterwirft ihn deshalb dem byte-code-Verifizierungsprozeß. Dieser beinhaltet eine Reihe von sinnvollen, restriktiven Maßnahmen. Darunter sind einfache Typüberprüfungen, Ausklammerung von Pointern, Ausschluß von Stack-Über- und -Unterläfen, strikte Parameterüberprüfung, strikte Typkonvertierungen, Überprüfung der Speicherzugriffsrestriktionen. Weiter wird getestet, daß Objekte wirklich nur als solche verwendet werden.

Daten- und Kontrollfluß vom Java-Quellcode bis zur Ausführung.

Trotz der ausgedehnten Verifizierungsprozeß bleibt Java (laut Sun) immer noch schnell genug, da der Java-Interpreter von jeder weiterer Überprüfung hinsichtlich der Sicherheit befreit ist und damit mit vollen Geschwindigkeit arbeiten kann.

Weitere Sicherheitsaspekte sind im Java Networking Package implementiert, welches es erlaubt verschiedene Sicherheitsebenen zu konfigurieren. Diese sind:

  • alle Netzwerkzugriffe sind verboten
  • Alle Netzwerkzugriffe sind erlaubt
  • Netzwerkzugriffe sind nur jenen hosts erlaubt, von denen der Code importiert wurde
  • Netzwerkzugriffe sind auf Zugriffe außerhalb des Firewalls beschränkt, wenn der Code von dort kommt.

Wer sich für Java interessiert, findet Java-Seiten mit vielen Demos, den HotJava-Browser (für SUNs) und Java-Entwicklersoftware auf dem Server von SUN Microsystems unter http://java.sun.com.

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere