Bevor es losgeht
Ich wei, ich wei Sie sitzen vor ihrem Bildschirm, haben bereits Ihre JavaEntwicklungsumgebung installiert, brennen drauf, Ihr erstes Java-Programm zu
schreiben und sind einigermaen ungehalten, sich erst noch durch ethliche Seiten
theoretischer Ausfhrungen qulen zu mussen. Men Sie nicht! Wenn Sie ihre
Entwicklungsumgebung schon eingerichtet haben und mit Programmerstellung
schon prinzipiell vertraut sind, berspringen sie dieses Kapitel einfach. Nur wenn Sie
ein absoluter Neuling in der Programmierung sind oder von Java nicht viel mehr
wissen, als dass es eine Programiersprache ist, sollten Sie diedes Kapitel unbedingt
vorab durchlesen. Alle anderen knnen nach Bedarf auch noch spter hierher
zurckkehren.
1.1
Java ist heute eine der fhrenden Programiersprachen, vielleicht die wichtigste
Programiersprache berhaupt. Programmierer weltweit schtzen Java fr seine
Robustheit, seine Vielseitigkeit, die problemlose Portierbarkeit seiner Anwendungen
und, und, und...
Entstanden ist Java 1993 als Forschungsprojekt der Firma Sun, wobei schon auf
diverse Vorarbeiten zurckgegriffen werden konnte. Der konkrete Anlass war der
einsetzende Boom des World Wide Web, das nach einer geeigneten
Programiersprache verlangte. Java ist vor diesem Hintergrund zu betrachten und
quasi ideal fr Einsatz im Internet- sei es, dass man Programme fr Websiten
schreiben mchte ( die sogenannten Applets), oder sei es, dass man ber das
Internet verteilte Anwendungen implantieren mchte(letzteres thema wird in diesem
Buch allerdings nicht behandelt).
Wie steht es in diesem Zusammenhang mit der Verwandschaft von Java zu den
anderen Programiersprachen? Man entwickelt schlielich keinen neue
Programiersprache, ohen die eigenen Erfahrungen mit den etablierten
Programmiersprachen einflieen zu lassen.
Nun, C++-Programierer wird sich freuen zu hren, dass Jav stark an C++ angeleihnt
ist. Die Grnde hierfr sind Zweifellos in der Objektorientierheit, der Schnelligkeit und
der Leistungsfhigkeit von C++ zu suchen, aber natrlich auch in der traditionellen
Bedeutung dieser Sprache.
Programierer, die von Pascal,Basic oder anderen objektorientierten Sprachen
kommen, werden sich dagegen freuen zu hren, dass Java viel unntigen Ballast,
den C++ mit sich schleppt, abgeworfen hat und dadurchwesentlich einfacher zu
erlernen und zu programmieren ist. Diese Entschlanckung dient nich nur der
Entlastung des Programmierers, sondern vor allem
1.2
Prinzipiell sind Programme nichts anderes als eine Folge von Befehlen, die an
einem Computer gerichtet sind und von diesem befolgt werden. Im Grunde
genommen funktionieren Programme also genauso wie Kochrezepte. Sie als
Programmierer sind der Koch, der das Buch schreibt. Jedes Kochrezept entspricht
einem Programm und der Computer, der Ihre Programme ausfhrt ist der Leser.
Leider ist die Realittwie blich komplizierter als das Modell. Im Fall des Kochrezepts
knnen wir einfach davon ausgehen, dass Schreiber und Leser die gleiche Sprache
sprechen, Im falle des Programmierers und des Computers ist dies natrlich nicht
der Fall, denn Sie als Programmirer sprechen an sich Deutsch und der Computer
spricht... ja, welche Sprache versteht eigentlich ein Computer?
Ich wnschte sie htten diese Frage nicht gestellt, denn die Antwort ist uerst
unerfreulich. Der Computer, in diesem Fall sollte man genauer von dem Prozessor
des Computers sprechen, versteht nur einen ganz begrenzten Satz elementarer
Befehle den Sogenannten Maschienencode, die zu allem Unglck noch binr
codiert ist und daher als eine Folge von Nullen und einsen vorliegt. Knnen sie sich
vorstellen, Ihre Programme als folge von Nullen und Einsen zu schreiben?
Wahrscheinlich genausowenig wie Ihr Computer in der Lage ist, Deutsch zu lernen.
Wir haben also ein echtes Verstndnisproblem. Um dieses zu lsen, mssen Sie
als der Intelligentere dem Computer schon entwas entgegenkommen.
Kehren wir nochmal zu unserem Kochbuch zurck und stellen Sie sich vor, ein
Chinese wrde ein kochbuch schreiben, das auf dem deutschen Buchmarkt
erschienen soll. Zwar findet der Chinese keinen geeigneten bersetzer, der das
Buch ordentlich com Chinesischen ins Deutsche bersetzen knnte, aber er erinnert
sich seiner Englischkenntnisse, die fr ein Kochbuch absolut ausreichend sein sollte.
Er schreibt also sin Buch in englich und lsst es dann von einem bersetzer ins
Deutsche bringen. Gleiches geschiet auch bei der Programmierung. Anstatt ihre
Programme in Deutsch aufzusetzen bedienen sie sicheiner Programmiersprache, fr
die es passende bersetzer gibt(Compiler), der Ihre anweisungen in
Maschienencode umwandeln kann.
Ich denke dass ist jetzt schon etwas klarer. Was aber genau ist jetzt das Programm?
Die noch in Deutsch formulierte Befehle? Die in Java formulierte Befehle? Oder die
binr codierten Maschienenanweisungen? Im weitesten Sinne knnen Sie in allen
drei Fllen von Ihrem Programm reden. Wwenn Sie es dagegen genau nehmen
wollen, bezeichnen Sie die noch in Ihrer Sprache aufgesetzte Befehlsfolge als
Algorithmus, die in Java formulierte Version des Algorithmus als Quelltext Ihres
Programms und erst den vom Compiler erzeugten Maschienencode als Ihr
Programm.
Mehr oder weniger unbeabsichtlich sind wir damit bereits in die Programmerstellung
abgeglitten, die im nchsten abschnitt noch einmal zusammengefat wird.
1.3
1.4
Auf der anderen Seite Haben diese Programme den Vorteil, dass sie sehr gut zu
portiern sind, das heit, die bertragung von einem computer auf den anderen ist
unproblematisch.
Jetzt fragen sie sich sicherlich wo Java einzuordnen ist.
1.5 Was ist Java? II. Teil
Ist Java nun eine Compiler- oder eine Interpreter-Sprache? Nun, die Einteilung ist
hier nicht ganz so klar. Man kann zwar vielorts lesen, es sei eine Interpreter-Sprache,
aber das wird der Lage nicht ganz gerecht, denn tatschlich ist Java beides.
Java-Quellcode wird zunchst mit einem compiler(er heit javac) bersetzt,
allerdings nicht in den Maschienencode des jeweiligen Prozessors, sondern in
Sogenannten Bytecode. Man kann sich deisen Bytecode als einen Maschienecode
eines virtuellen Prozessors vorstellen, das heit eines prozessors den es gar nicht
gibt.
Damit der Bytecode nun von einem echten Prozessor ausgefhrt erden kann, muss
er whrend des Programmlaufs in dessen Maschienencode umgewandelt werden,
das heit der Interpreter ist zum abspielen des Programms notwendig, den man
einfach wie Sprache getauft hat, also java.
Warum diese seltsame Mischung aus Compiler und Interpretersprache? Die Antwot
liegt auf der Hand. Es geht darum, die Vorteile beider Systeme miteinander zu
verbinden.
- Die vorkompilierte Bytecode kann wesentlich schneller interpretiert werden
- Die bersetzung in Bytecode schtzt Ihre Algorithmen vor unerwnschter
Nnachahmung
- Der Bytecode ist platformunabhngig. Gleichgltig auf welcher Computer der
Bytecode erstellt ist, er wird immer identisch aussehen. Es ist dadurch mglich,
Bytecode von einem Rechner zum nchsten zu transferieren (z.B. ber das internet)
und dort ausfhren zu lassen ohne die geringste nderung vornehmen zu mssen.
Der Interpreter hat die Mglichkeit, die Programmausfhrung zu berwachen und
beispielweise (absichtlich oder unabsichtlich) unkorrekte Speicherzugriffe oder
Datenmanipulation zu erkennen und direkt mit einer Fehlermeldung abzufangen.
Dies ist insbesondere unter Sicherheitsaspekten interessant. Da Java fr das
Internet und somit fr den beliebigen Datenaustasch konzipiert ist, muss weitgehend
sicergestellt werden, dass ein Java-Programm, das man mit seinem Browser durch
einen mehr oder weniger achtlosen Klick startet, nicht irgendwelche blen Sachen
anstellt. Ein Interpreter der Stndig darauf achtet was ein Java-Programm gerade tun
will, ist dafrein geeigneter Ansatz.
Bevor wir im nchsten Kapitel voll in die Programmierung einsteigen , sollten Sie
ihren Computer vorbereitet haben. Folgende Zuteten sind fr das erstelliung von
Java-Programmen notwendig:
-Die Java-Entwicklungsumgebung (JDK)
-Die JDK besteht aus einer Sammlung aller fr Programmierung notwendigen
Tools(Compiler, Interpreter, Debugger, AppletViewer, etc.), den zu Java gehrenden
Standardbibliotheken und einer reihe von Beispielprogrammen. Die JDK-Tools
werden von der Konsole aus aufgeruffen. Linuxanwender fen hierzu einen
Terminalfenster, windows-Anwender die Eingabeauffrderung.
-Texteditor
-Webbrowser(wie z.B UC Browser), Opera, oder Firefox
Den browser bentigen sie einerseits zum Studiu der Java Klassendokumentatione,
anderseiteits zum testen von selbst erstellten Applets.