Was ist JAVA?
Sun beschreibt JAVA folgendermaßen:
"Java: A simple, object-oriented,
distributed, interpreted, robust, secure, architecture neutral, portable,
high-performance, multi-threaded and dynamic language."
Sun gibt zu, daß dies
eine ganz schöne Kette von Schlagwörtern ist, aber es ist eine
Tatsache, daß sie die Sprache genau beschreiben.
Einfach [simple]
Java ist eine einfache Sprache.
Aber was genau ist mit einfach gemeint? Ein Entwurfsziel war es, eine Sprache
zu kreieren, die ein Programmierer schnell lernt. Deswegen wurde die Anzahl
von Sprachkonstrukten klein gehalten. Ein anderes Ziel war es, daß
die Sprache der Mehrzahl der Programmierer bekannt vorkommt, damit die
Migration einfach ist.
Objektorientiert [object-oriented]
Java ist eine objektorientierte
Programmiersprache. Für den Programmierer bedeutet dies, sich auf
die Daten in seiner Applikation und auf die Methoden, mit denen er die
Daten manipulieren kann, zu konzentrieren , anstatt nur in Prozeduren zu
denken.
Verteilt [distributed]
Java wurde entworfen, um
Applikationen auf Netzwerken zu unterstützen. Es ist eine verteilte
Sprache. Java unterstützt Netzverbindungen auf verschiedenen Ebenen
durch Klassen. Zum Beispiel erlaubt die URL-Klasse mit Java-Applikationen
entfernte Objekte im Internet zu öffnen und auf sie zuzugreifen. Mit
Java ist es genauso einfach eine entfernte Datei zu öffnen. Java unterstützt
außerdem zuverlässige Stream-Netzwerkverbindungen, so das verteilte
Client/Server Implementationen programmierbar sind.
Interpretiert [interpreted]
Der Javacompiler erzeugt
Bytekode statt direkten Maschinenkode. Um ein Javaprogramm tatsächlich
ablaufen zu lassen, benutzt man den Javainterpreter. Java ist somit eine
interpretierte Sprache. Java Bytekodes stellen ein architekturunabhängiges
Objektdateiformat zur Verfügung. Der Kode ist dazu entworfen worden,
Programme effizient auf verschiedene Plattformen zu transportieren. Ein
Javaprogramm kann auf jedem System laufen, das einen Javainterpreter und
ein Laufzeitsystem zur Verfügung stellt. Zusammengenommen implementieren
das Laufzeitsystem und der Interpreter eine virtuelle Maschine, die »Java
virtual Machine«.
Robust [robust]
Java wurde entworfen, um
sehr zuverlässige robuste Software zu schreiben. Java macht selbstverständlich
die Qualitätskontrolle nicht unnötig. Es ist immer noch möglich,
unverläßliche Software zu schreiben. Jedoch eliminiert Java
bestimmte Arten von Programmierfehlern, so daß es deutlich einfacher
wird, zuverlässige Software zu schreiben.
Sicher [secure]
Einer der am meisten angepriesenen
Aspekte von Java ist, daß es eine sichere Sprache ist. Sicherheit
ist ein wichtiger Gesichtspunkt, da Java dazu gedacht ist, in Netzumgebungen
eingesetzt zu werden. Ohne ein Minimum an Sicherheit wird sich wohl kaum
jemand ein Applet irgendwo aus dem Internet laden und es dann auf seinem
Computer ablaufen lassen. Java besitzt verschiedene Sicherheitsmechanismen,
um vor Kode zu schützen, der versuchen könnte, einen Virus anzulegen
oder in das Dateisystem einzudringen.
Architekturunabhängig
[architecture neutral]
Wie schon erwähnt,
werden Javaprogramme in einen architekturunabhängigen Bytekode übersetzt.
Der Hauptvorteil dieses Ansatzes ist, daß Java-Applikationen auf
jedem System laufen können, auf dem die Java Virtual Machine implementiert
ist. Da Java dafür entworfen wurde um netzwerkbasierte Applikationen
zu entwickeln, ist es wichtig, daß Java-Applikationen auf allen Systemen
laufen können, die im Internet zu finden sind.
Portabilität [portable]
Architekturunabhängigkeit
macht einen großen Teil der Portabilität aus. Aber Java geht
noch weiter indem es sicher stellt, daß es keine »implementationsabhängigen«
Aspekte der Sprachdefinition gibt. Zum Beispiel definiert Java explizit
die Größe jedes einfachen Datentyps und sein arithmetisches
Verhalten.
Hochperformanz [high-performance]
Java ist eine interpretierte
Sprache. Deswegen wird sie niemals so schnell wie eine übersetzte
Sprache, wie etwa C, sein. Tatsächlich ist Java etwa 20 mal langsamer
als C. Dennoch ist diese Geschwindigkeit mehr als ausreichend für
interaktive, grafische und netzbasierte Anwendungen, die oftmals nur darauf
warten, daß der Benutzer etwas tut, oder das Daten vom Netz eintreffen.
Multithread-Fähigkeit
[multi-threaded]
In einem Web-Browser müssen
viele Dinge gleichzeitig passieren. So zum Beispiel das laden einer Datei
während dem Abspielen eines Audioclips. Java ist eine multithreadfähige
Programmiersprache. Sie unterstützt die Ausführung mehrerer Threads,
die verschiedene Aufgaben wahrnehmen können.
Dynamisch [dynamic]
Java wurde entworfen, um
sich einer veränderlichen Umgehung anzupassen. Es ist somit eine dynamische
Sprache. Zum Beispiel lädt Java seine Klassen erst, wenn sie benötigt
werden. Klassen haben in Java auch eine Laufzeitrepräsentation. Im
Gegensatz zu C oder C++ bekommt ein Programm, bei der Übergabe eines
Objektes heraus, zu welcher Klasse es gehört, indem es die Laufzeitinformation
überprüft. Die Laufzeitklassendefinitionen in Java machen es
möglich, Klassen zu einem laufenden System dynamisch dazu zu binden.
/1/
|