Die Java Funktionsbibliothek
Wrapper-Klassen
Wrapper-Klassen *
Nenne alle Wrapper-Klassen und beschreibe gemeinsame Funktionen und auch Unterschiede.
Klasse java.lang.Integer *
Zahlen lassen sich vielfältig in Strings konvertieren. Vergleiche
String irgendwas = new Integer(value).toString();
String irgendwas = Integer.toString(int);
miteinander. Wie funktionieren beide? Nimm den Quelltext zu Hilfe. Gibt es signifikante
Geschwindigkeitsunterschiede?
Aufbau einer ArrayList und Sortieren *
- Heidi Hopper hat folgende Idee: Die herkömmliche Schleife mit einer Ganzzahl
als Schleifenzähler soll ersetzt werden durch eine Aufzählung mit
java.lang.Integer
als Wrapper-Klasse. Schnell formuliert sie Folgendes:
for ( Integer i = new Integer(0);
i.lowerThan(new Integer(10)); )
i.assign( i.add(newInteger(1) );
Ist dieses Programmsegment korrekt? Von welcher Eigenschaft der
java.lang.Integer-Klasse
wird hier ausgegangen?
- Betrachte die Dokumentation der Klasse
java.lang.Character
und beobachte, ob Funktionen fehlen, die unter der C-Bibliothek zu finden sind?
Sieh in die Implementierung von Character.java und löse die Frage, wie denn
unter 65.536 Zeichen schnell entschieden werden kann, ob dieses Zeichen ein
Großbuchstabe, eine Zahl oder Ähnliches ist.
Externe Programme starten
Die Runtime-Umgebung **
Implementiere in Java eine einfache Shell. Führe die eingelesenen Zeilen mit
den exec()-Methoden aus der Klasse
java.lang.Runtime
aus. Gebe die Fehler- und Standardausgabe der Kommandos aus.
$ java Shell >>>
ls -l
total 4
2028 Dec 11 17:30 Sh.class
847 Dec 11 17:30 Sh.java
433 Dec 11 16:57 makefile
>>> cat /tmp/x
/usr/local/gnu/bin/cat: /tmp/x: No such file or directory
>>> wc
0 0 0
>>> hostname hoppala
Registry mit Hintergrund füllen **
Setze über Eigenschaften/Hintergrund den Hintergrund auf eine Grafik und beobachte,
welche Einträge sich ändern. Der Pfad ist: [HKEY_CURRENT_USER\Control Panel\Desktop].
Setze durch ein Java-Programm in der Registry eine neue Grafik. Hinweis: Die Grafik
muss im BMP-Format sein und wird erst nach dem nächsten Booten sichtbar.
Klassenlader
Ein eigener Klassenlader ***
- Eine Xor-Verschlüsselung ist symmetrisch und dreht jedes Bit bezogen auf
eine Maske um. Verschlüssle eine Klasse damit.
- Implementiere einen eigenen Klassenlader. Er soll wie das Original die Klasse
ebenfalls vom Dateisystem holen.
- Der Klassenlader soll nun die Klasse mit dem Xor-Null Encoder entschlüsseln.
- Die Dateinamen können wir auch noch ändern. Dazu ist wieder ein symmetrisches
Verfahren praktisch. Bekannt ist Rot13, ein Verfahren, dessen Bezeichnung sich
aus dem Begriff "Rotiere um 13 Zeichen" ableitet. Es eignet sich
sehr gut zur Unkenntlichmachung von Texten, da auf den ersten Blick nicht mehr
zu erkennen ist, was der Text ursprünglich aussagen wollte. Ändere das Programm
Rot13.java so ab, dass es beliebige
Strings umwandelt. Passe anschließend den Klassenlader an, sodass er Rot13-umgewandelte
Dateinamen nutzt.
Benutzereinstellungen
Konfigurationen *
Teste das Preferences-Beispiel, welches auf der Webseite von
IBM verzeichnet ist. Passe dabei das Paket an die eigene Struktur an.
- Was kann man machen, wenn mehr als 8 kB als Wert gespeichert werden sollen?