Zum Inhalt springen

SEO Analyse » SEO Lexikon » j » Java

JavaIm Jahr 1991 wurde von Sun Microsystems eine Software mit dem Namen Oak (Object Application Kernel) entwickelt. Die Gruppe der Entwickler wurde von James Gosling geleitet. Das Projekt erhielt den Namen „The Green Project“. Die Idee der Programmierer war es, ein System zu erschaffen, das unabhängig von dem Betriebssystem basierend auf einer eigenen virtuellen CPU (Central Processing Unit) arbeitet. Ziel war es, ein beliebiges elektronisches Gerät über die Software ansteuern zu können.

1992 wurde eine mit einem Touchscreen gesteuerte Gerätesteuerung mit einer benutzerfreundlichen grafischen Oberfläche erfolgreich fertiggestellt. Die Anwendung erhielt den Namen „Star Seven“. Der portable Mikrocomputer wurde entwickelt, um Haushaltsgeräte steuern zu können. Die Testreihe war mit Erfolg gekrönt. Die Vermarktung des Mikrocomputers wurde nie in umgesetzt. Es wurde beschlossen, den Einsatz der Software im Internet zu nutzen.

Die Entwickler erweiterten einen Webbrowser mit der Oak Software und nannten den ersten Java-unterstützten Browser WebRunner. Der Java-Quellcode wurde Anfang 1995 der Öffentlichkeit preisgegeben. Sun Microsystems wurde Anfang 2010 von Oracle aufgekauft. Die Software ist als OpenJDK freigegeben. Im Jahr 2007 wurde der Großteil von dem Code veröffentlicht und als Open Source deklariert.

Das Ziel von Java und der Laufzeitumgebung

Das System ist plattformunabhängig. Es ist lauffähig auf verschiedenen Rechnersystemen, die in Ihrer Architektur, Betriebssystem, Prozessor und anderen Programmen unterschiedlich sind. Bei der Java-Installation ist der erste Schritt, den Bytecode zu compilieren. Das bedeutet, dass der Compiler die Bytes für das jeweilige Betriebssystem übersetzt. Der Bytecode wird auf dem zu installierendem System erst durch die Java-Laufzeitumgebung (JRE) in die für das jeweilige System passende Maschinensprache übersetzt.

Die Maschinensprache ist die Programmsprache des Computers, die auf den installierten Prozessor und seiner Syntax abgestimmt sind. Die Laufzeitumgebung (Java Runtime Environment) besteht aus der JVM (Java Virtual Machine), die für die Ausführung der Anwendungen verantwortlich ist. Die Programmierschnittstellen (API) verfügen über Standard Klassen der Programmiersprachen, die auf die virtuelle Maschine abgestimmt sind. API und JVM sind in der Laufzeitumgebung zusammengefasst.

Für die unterschiedlichen Betriebssysteme, Prozessoren und Bussysteme sind die nötigen Informationen in Bibliotheken zusammengefasst worden auf die die Laufzeitumgebung (JRE) bei Bedarf zugreifen kann. Die Laufzeitumgebung muss auf dem Zielrechner installiert sein damit das Übersetzen der Bytecodes und das Zuordnen von dem Maschinencode korrekt zugeordnet wird. Die Open Source der Laufzeitumgebung wurde für Linux, Mac, Microsoft Windows und allen gängigen Betriebssystemen entwickelt. Die zugehörigen APIs werden von den Hardwareherstellern in Verbindung mit den Entwicklern programmiert und den Bibliotheken hinzugefügt.

Die ursprüngliche Idee der Entwickler spiegelt sich in Smartphones, PDAs, Navigationsgeräten und verschiedenen anderen Möglichkeiten wieder. Mit der Softwareplattform JRE können Programme weitgehend unabhängig von dem installierten Betriebssystem auf dem Computer ausgeführt werden (plattformunabhängig).

Verschiedene Java Plattformen

Die Java Card ermöglicht es ein Java Applet auf einer Chipkarte auszuführen. Die Applets wurden entwickelt, damit Programme auf einem Webbrowser ablaufen können. Das Applet wird auf einer HTML-Seite aufgerufen. Der Browser verfügt über ein JRE, damit die Bytecodierung kompiliert wird. Ausgeführt werden die Applets nur, wenn die Karte an einer externen Stromversorgung angeschlossen ist. Das JVM muss die Anweisung erhalten, ein bestimmtes Applet zu starten. Ohne diese Anweisung reagiert die Karte nicht.

APDU´s (Application Protocol Data Unit) bilden die Kommunikationseinheit zwischen der Chipkarte und der Anwendung (Applet). Die Funktionsweise richtet sich nach dem Prinzip „Answer to Reset“ (ATR). Die Chipkarte enthält Parameter, die an den Chipkartenleser weitergeleitet werden. Das Einsatzgebiet der Java Cards ist das Speichern kryptografischer Schlüssel, die das sichere Zugreifen auf Daten ermöglichen. Die Identifikation der Benutzer wird durch den Datenaustausch im ATR-Verfahren sichergestellt. Erst bei dem korrekten Schlüssel wird ein Datenzugriff gewährleistet.

Die Java ME (Micro Edition) ist geschaffen worden für die Unterstützung von PDAs und Mobiltelefone. Unabhängig vom Hersteller oder dem Betriebssystem können Anwendungen auf dem Mobiltelefon ausgeführt werden. Es können Java Specification Requests (JSR) erstellt werden, um Änderungen der bestehenden Laufzeitumgebung zu definieren. Einige Erweiterungen sind Schnittstellen zu Bluetooth oder das Einbetten von SOA, damit Dienste im IT-System strukturiert genutzt werden. Ein JSR nimmt Sprachelemente auf, erweitert APIs oder führt Revisionen durch die die Funktionalität unabhängig von der Hardware auf der Laufzeitumgebung (JRE) ausführt.

Die Java Standard Edition (JSE) stellt eine Sammlung von Programmierschnittstellen dar. Die Schnittstellen dienen unterschiedlichen Funktionen. Swing ist entwickelt worden, damit grafische Oberflächen programmiert werden können. Die JDBC-Schnittstelle ist für die Anbindung an Datenbanksysteme. Damit können SQL Anfragen an Datenbanken weitergereicht werden und die Ergebnisse der Datenbank werden in eine nutzbare Form für Java umgewandelt. In dieser Form werden die Daten dann zu beliebigen anderen Schnittstellen transportiert.

Die Java Enterprise Edition (JEE) spezifiziert Dienste, die im Java-Code geschrieben wurden. Modular entwickelte Komponenten, die auf der Grundlage einer Norm basieren, gewährleisten die Fähigkeit der Zusammenarbeit zwischen verschiedenen Herstellern. Für die Laufzeitumgebung sind Java EE Application Server notwendig. Der Client, der unabhängig von der Hardware oder dem Betriebssystem ist, greift über einen Browser auf die Web basierenden Anwendungen zu.

Die Programmiersprache Java

Die objektorientierte Programmiersprache ist in ihrem Aufbau und den Funktionen mit C++ zu vergleichen. Im Gegensatz zu C++ sind die Befehle und damit die Möglichkeiten reduziert. Diese Tatsache stößt zum einen auf Kritik und zum anderen bestätigt es das robuste Laufzeitverhalten der Java Anwendungen. Es wurde bewusst eine objektorientierte Sprache entwickelt, damit die Daten und die zugehörigen Funktionen in einem Objekt zusammengefasst werden können.

Der Vorteil dieser Technik ist, dass das Objekt nach außen verkapselt wird, um einen ungewollten Zugriff verhindern zu können. Die einzelnen Softwaremodule (Objekte) können in anderen Softwaremodulen wieder verwendet werden. Es wird zwischen Schnittstellen und Klassen unterschieden. Eine Klasse ist ein Bauplan für ein Softwareprojekt, in dem die Eigenschaften und die entsprechende Verhaltensweise definiert werden. Die Schnittstelle vereinbart eine gemeinsame Signatur der Klassen. Ist der Quellcode geschrieben, wird er durch einen Compiler in einen maschinenverständlichen Code den Bytecode übersetzt. Der Bytecode wird nicht direkt von der Hardware ausgeführt. Die Ausführung wird durch eine Software auf der gewünschten Zielplattform ausgeführt. Diese „virtuelle“ Ausführung ist die Grundlage der Plattformunabhängigkeit.

Voraussetzung für das Ausführen sind die jeweiligen Plattformen wie JEE, JME, JSE oder die Java Card. Damit die Geschwindigkeit beim Ausführen von einem Java Programm erhöht wird, liest ein Interpreter den Quellcode ein und analysiert ihn während der Laufzeit. Zuständig dafür ist die Java Virtual Machine (JVM). Ein reiner Compiler analysiert und liest den Quellcode ein, bevor er ausgeführt werden kann. Die JVM schottet die in ihr laufenden Threads (Arbeitsabläufe | Prozesse) von dem jeweiligen Betriebssystem ab. Diese Eigenschaft der JVM ermöglicht die Installation auf Betriebssystemen, die nicht dafür konzipiert sind, mehrere Threads parallel auszuführen.

Ein Sicherheitsvorteil ist das Überwachen der Anwendung während der Laufzeit. Das Überlaufen der Puffer wird dadurch verhindert, dass die Datenmengen nicht in zu kleine Speicherbereiche (Puffer) geschrieben werden. Ohne diese Überwachung kann es bei Anfragen an ein Programm mit großen Datenmengen (Datenbanken) zum Überschreiben von Speicherstellen kommen. Dieser ungewollte Effekt würde zu einem Programmfehler (Runtime Error) führen.

Zusammenfassung

Java ist eine vielseitige, plattformunabhängige Programmiersprache, die ursprünglich von Sun Microsystems entwickelt wurde. Die Sprache wurde mit dem Ziel entworfen, beliebige elektronische Geräte ansteuern zu können und hat sich inzwischen auf vielfältige Anwendungsbereiche ausgedehnt. Besonderes Merkmal ist die Java-Laufzeitumgebung (JRE), die den Bytecode in maschinenlesbare Sprache übersetzt, sodass Programme auf verschiedenen Systemen laufen können.

Java bietet verschiedene Plattformen für unterschiedliche Anwendungsfälle. Dazu gehören die Java Card für Chipkarten, Java ME (Micro Edition) für mobile Geräte und Java EE (Enterprise Edition) für serverseitige Anwendungen. Diese Plattformen nutzen spezifische Programmierschnittstellen (APIs) und Bibliotheken, um eine hohe Kompatibilität und Flexibilität zu gewährleisten.

Die Sprache ist objektorientiert und ähnelt in ihrem Aufbau C++. Sie bietet jedoch ein robusteres Laufzeitverhalten und legt großen Wert auf Sicherheit, etwa durch Laufzeitüberwachung. Besondere Merkmale sind die Java Virtual Machine (JVM), die den Code interpretiert und die Möglichkeit der Wiederverwendung von Softwaremodulen.

Im Hinblick auf die Sicherheit überwacht Java die Anwendung während der Laufzeit, um das Überlaufen von Puffern und damit verbundene Programmfehler zu verhindern. Die JVM ermöglicht die plattformunabhängige Ausführung, indem sie die Anwendungen vom jeweiligen Betriebssystem isoliert.

Häufige Fragen und Antworten

Was ist das Ziel von Java und der Laufzeitumgebung?

Das Ziel von Java und der Laufzeitumgebung ist es, plattformunabhängige Software zu ermöglichen. Java-Anwendungen können auf verschiedenen Rechnersystemen mit unterschiedlicher Architektur, Betriebssystemen und Prozessoren laufen. Bei der Java-Installation wird der Bytecode kompiliert und von der Java-Laufzeitumgebung in die entsprechende Maschinensprache übersetzt, die auf dem Zielrechner benötigt wird.

Welche verschiedenen Java Plattformen gibt es?

Es gibt verschiedene Java Plattformen für unterschiedliche Anwendungsfälle:

  • Java Card: Für das Ausführen von Java Applets auf Chipkarten
  • Java ME (Micro Edition): Für PDAs und Mobiltelefone
  • Java SE (Standard Edition): Eine Sammlung von Programmierschnittstellen
  • Java EE (Enterprise Edition): Für serverseitige Anwendungen

Diese Plattformen nutzen spezifische Programmierschnittstellen und Bibliotheken, um eine hohe Kompatibilität und Flexibilität zu gewährleisten.

Was sind die Besonderheiten der Programmiersprache Java?

Java ist eine objektorientierte Programmiersprache, die in ihrem Aufbau und den Funktionen C++ ähnelt. Sie zeichnet sich jedoch durch eine reduzierte Befehlsmenge aus, was zu einem robusteren Laufzeitverhalten von Java-Anwendungen führt. Java ermöglicht die Zusammenfassung von Daten und Funktionen in Objekten, die nach außen hin verkapselt werden können. Dadurch wird die Wiederverwendung von Softwaremodulen erleichtert.

Ein weiteres Merkmal von Java ist die Laufzeitüberwachung, die unter anderem das Überlaufen von Puffern verhindert. Dies führt zu einem erhöhten Sicherheitsniveau und verhindert Runtime Errors. Java-Anwendungen werden von der Java Virtual Machine (JVM) interpretiert, wodurch sie plattformunabhängig und unabhängig von der Hardware ausgeführt werden können.

Bildnachweis: iStock.com/loveguli


Zurück zur Hauptseite: j
Alle Marken, Warenzeichen, Unternehmens- und Produkt-Bezeichnungen sind mit, aber auch ohne definitive Kennzeichnung, Eigentum des Inhabers der Rechte. Alle aufgeführten Elemente dienen lediglich der informativen Beschreibung.