Diplomarbeit von Andrè Neubert, HTW-Dresden (FH), Fachbereich Bauingenieurwesen/Architektur, Studiengang Bauingenieurwesen 
 Thema: "Entwicklung einer Softwarekonzeption als Lehrhilfe für symbolische Darstellungen auf dem Gebiet der Festigkeitslehre"

Die Programmiersprache JAVA

zzz   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/

 

 © 2001 Andrè Neubert  -  Version 1.00 vom 30.06.2001