CM's Java FAQ

Diese FAQ wurde zuletzt am 23.04.1997 aktualisiert, die neuste Version findet sich immer unter http://rcswww.urz.tu-dresden.de/~schoenfu/java/javafaq.html

[ Anfang ], [ Allgemeines ], [ Programmierung ], [ Tools ],


allgemeine Fragen

  1. Wo finde ich andere FAQs?
    Siehe dazu meine Links-Seite. Eine Suche nach "+java faq" z.B. mit Alta Vista sollte ebenfalls mehr als genug Ergebnisse bringen.
  2. Welche Plattformen unterstützen Java?
    Welche Plattformen bisher unterstützt werden, steht auf meiner Java-Seite. Es wird definitiv kein Java für DOS geben, es kommen aber immer neue Plattformen hinzu. Bei Linux und dem neuen OS/2 ist die virtuelle Maschine direkt ins Betriebssystem integriert, die anderen benötigen das SDK oder einen Java-fähigen Browser wie Netscape. Auch Micro$oft hat in Sachen Java etwas in petto. Leider unterstützen noch nicht viele Plattformen den Sprachstandard 1.1.
  3. Welche Hardware brauche ich und wie schnell ist eigentlich Java?
    Die Geschwindigkeit hängt vom Betriebssystem ab, in der Regel braucht man aber ohne einen JIT-Compiler (just in time) schon ein ganz schönes Maschinchen, schließlich laufen ständig mehrere Threads und das ganze wird interpretiert. Der Speicherbedarf ist auch nicht zu unterschätzen. Trotzdem, mit den Anforderungen, die moderne Betriebssysteme ohnehin stellen, gibt sich auch Java auf jeden Fall zufrieden. Wenn man nicht gerade einen kleinen 486er mit 8 MB RAM hat, der mit Windows 95 sowieso überfordert ist, sollte man keine Probleme haben.
  4. Welche Entwicklungswerkzeuge, Docs und Tutorials gibt es?
    Es gibt im Netz ein paar sehr gute Tutorials, wie z.B. Brewing Java , die Bücher der Java-Entwickler und jede Menge FAQs. Hilfreich ist auch noch die Winhelp-Version der Original-Dokumentation und des APIs. Außerdem gibt es natürlich mittlerweile auch einige gute Editoren und Interface builder. Ich bevorzuge Jpad und Kawa (Homepage). Desweiteren finde ich es eine gute Idee, die DocComments zu benutzen, so kann man sich leicht eine übersichtliche und vor allem leicht zu aktualisierende API-Dokumentation basteln (lassen). Zu allererst braucht man natürlich das SDK.
  5. Wie sollte ich meinen Sourcecode gestalten und wo liegen Unterschiede zu C++?
    Gerade in einer objektorientierte Programmiersprache sollte man sich einen klaren und sauberen Programmierstil angewöhnen und seine Interfaces gut dokumentieren, schließlich will man einmal erstellte Code auch einmal wiederverwenden. Dem Java-Compiler selbst ist die Gestaltung des Code jedoch egal. Zum Glück ist Java-Code generell sehr gut lesbar, denn durch klar definierte Typen (ein großes Manko von C++), Unterbindung von Operator-Überladung, Pointerarithmetik und anderer Sachen (z.B. kann es nicht mehr passieren, daß man bei if(a==0) ein Gleichheitszeichen vergißt), ist alles eindeutig interpretierbar. Als C++ Programmierer vermisse ich lediglich die #defines, z.B. für and und or.
    Viele Sachen sind natürlich Geschmackssache, von Doug Lea gibt es einen Coding Standard für Java. Selbstverständlich sollte man Blöcke einrücken, ob man öffnende bzw. schließende Klammern einrückt bzw. die öffnende noch nicht auf eine neue Zeile schreibt, muß jeder selbst wissen.
  6. Wie starte ich die Programme, gibt es keine EXEn?
    Eine Java-Programm besteht aus mehreren .class-Files, welche die Funktionalität beinhalten. Nun sieht man diesen Dateien weder an, ob es sich um Applets oder Applications handelt, noch, welche davon nun die Startdatei ist. In der Regel sollte es eine HTML-Datei geben, die das Applet mit den richtigen Parametern startet. Diese muß man nur in einem Filemanager doppelklicken, bzw. mit Netscape, HotJava, dem IE3.0 oder einem anderen Java-fähigen Browser öffnen.
    Handelt es sich um eine Application, so braucht man zur Ausführung einen Java- Interpreter wie den im JDK von Sun enthaltenen JAVA oder JVIEW von Microsoft. Genaueres sollte sich auch immer in der Hilfe zum jeweiligen Programm finden lassen.
  7. Was bringt das JDK 1.1 Neues?

    HotJava ab Beta3 ist zur Zeit allerdings außer dem JDK 1.1 selbst der einzige Browser, der mit den neuen Applets klarkommt. Das JDK 1.1 ist jetzt veröffentlicht.


Fragen zur Programmierung

Diese Informationen finden Sie jetzt in der dem JDK 1.1. entprechenden Form im Java-Tutorial.


Fragen zu Java-Tools

  1. Gibt es eine kommentierte Liste der Fehlermeldungen des Compilers?
    Diese Informationen finden Sie jetzt in der dem JDK 1.1. entprechenden Form im Java-Tutorial.
  2. Wie funktionieren docComments?
    /** Funktionsbeschreibung unmittelbar vor einer Methode */
    Das Programm javadoc generiert aus den docComments eine API-Dokumentation in HTML.

    besondere Elemente:
    @see Klasse#MethodeHyperlink
    @param Name Textbeschreibt Parameter einer Methode
    @return Textbeschreibt Rückgabewert einer Methode
    @exception Klasse Textbeschreibt Ausnahmebehandlung einer Methode
    @author TextAutor der Klasse
    @deprecatedals veraltet deklarieren
    @version TextVersion bzw. Datum der Klasse
  3. Welche Parameter versteht javadoc?

    Hier sind der Vollständigkeit halber alle Parameter:
    -d [path]Zielpfad für HTML-Dateien
    -authors@author-Tags berücksichtigen (-author geht auch)
    -version@version-Tags berücksichtigen
    -verbosezusätzliche Statusmeldungen
    -dependAbhängigkeiten und Querverweise zu anderen Packages
    -nowritekeine Ausgaben
    -noindexkein AllNames.html erstellen
    -notreekein tree.html erstellen
    -debugzusätzliche Debugmeldungen
    -sourcepathPfad der Java-Quelltexte

    Außerdem sollte man noch in jedem Package eine Dummy-Klasse erstellen, da JavaDoc die alphabetisch letzte Klasse in jedem Package ignoriert. Man kann auch den Namen eines einzelnen Packages oder einer Java-Quelldatei angeben.
  4. Wie finde ich heraus, was in meinem Programm die meiste Zeit verbraucht?

    Profiling mit Java:
    Applicationjava -prof
    Appletjava -prof sun.applet.AppletViewer test.html

    In neueren JDK-Versionen existiert javap. Für die Analyse des Profiles benötigt man einen Profil-Anzeiger.


zurück zur Hauptseite mit Index aller Java-Seiten