|
Der Java-Programmierer muß keine Gedanken an die Speicheranforderung oder -freigabe für Klassen und Objekte verschwenden.
Für den Garbage Collector wendet die Laufzeitumgebung verschiedene Techniken an, die zum einen sicherstellen, daß der Speicherplatz effektiv freigegeben wird, zum anderen aber die Speicherfragmentierung minimiert. In Java läuft der Garbage Collector in einem eigenen Thread mit niedriger Priorität und verrichtet seine Arbeit im Hintergrund, um die Performance der Programme nicht zu beeinflussen.
Java ist sicher
Im Hinblick auf die potentiellen Risiken im Internet legen die Entwickler von Java sehr viel Wert auf eine sichere Programmiersprache. Deswegen haben sie für Java Sicherheitsmechanismen auf vier Ebenen der Systemarchitekur vorgesehen.
Erstens ist die Sprache Java sicher, d.h. die Sprachdefinition bildet die erste Hürde. So verfügt Java über keinen Precompiler, dessen Definitionen beispielsweise in C und C++ schnell zu unverständlichen und daher leicht fehlerhaften Verschachtelungen im Quellcode führen. Auch kennt Java keine expliziten Zeiger und damit keine fehlerträchtige Zeiger-Arithmetik. Die Art von Zeigern, die es gibt, sind echte Objektreferenzen; ein Objekt kann also nicht als Feld von Bytes betrachtet werden, die beliebig geändert werden können.
Zweitens wird der gesamte Bytecode vor und während der Ausführung vom Java-Interpreter auf Einhaltung der Sicherheitsregeln der Sprachdefinition überprüft. So wird verhindert, daß ein übel gesinnter Entwickler einen Compiler außerhalb der Sprachdefinition verwendet oder gar auf Bytecode-Ebene Änderungen vornimmt. Die Überprüfung umfaßt beispielsweise Tests auf korrekte Zeiger, Einhaltung der Zugriffsbeschränkungen, Aufruf von Methoden ausschließlich mit zulässigen Argumenten und daß der Stack nicht überläuft. Nach der Überprüfung ist kein Über- oder Unterlauf des Operandenstack möglich. Operationen werden nur auf Operanden mit korrektem Typ angewandt. Es existieren keine unzulässigen Typkonvertierungen und es finden nur legale Zugriffe auf Objekte statt.
Das Geheimnis Java - 7 / 12
|