Heute zurück ganz ganz kurz zum vierten Kapitel und dann fangen wir mit dem fünften an. Wir hatten uns die
letzte Woche hatten sie mit dem Herrn Wilke die Apis durchgegangen und ich will da nochmal aufsetzen
bei den String-Buffern. Apis wir haben natürlich nicht alle Pakete durchgemacht, aber so ein paar
beispielhaft gezeigt und ich denke das ist einer der wirklichen Vorteile von Java, wenn sie irgendein
Problem haben, dass sie lösen müssen. Irgendjemand auf der Welt hatte das Problem auch schon mal und
unter Umständen hat er dann seine Lösung irgendwie als Paket ins Netz gestellt und der Unterschied
zwischen dem String und dem String-Buffer, der ist jetzt einfach der folgende.
Wenn sie einen String erzeugen, dann wird exakt die Länge des Strings im Speicher abgelegt. Wenn
sie an den String jetzt etwas hinten ranhängen wollen, dann wird erst ein String-Buffer gemacht.
Das ist ein sehr großer Speicherbereich, in den wird dann der String rein kopiert,
dann wird an den String der zweite String angehängt und dann wird dieses neue Objekt
wieder raus geschrieben und dann wird ein neuer String draus gemacht. Und Sie können sich vorstellen,
diese Operationen sind sehr zeitaufwendig und deswegen rentierte es sich, dass wenn
Sie viele String-Operationen haben, aus Zeitgründen, dass Sie mit einem String-Buffer arbeiten.
Wie gesagt, der String-Buffer nimmt jetzt erst einmal wesentlich mehr Speicherplatz als er
eigentlich benötigen würde und Sie können in dem operieren, ohne dass Sie jedes Mal was
Neues erzeugen müssen. Und wir haben uns das eben angesehen. Hier sehen Sie also, wenn Sie
hier einen String haben, den Sie bekommen, indem Sie drei Strings konkatenieren, dann wird hier
eben erst ein neuer Buffer aufgemacht, dann wird das erste Objekt, das zweite, das dritte Objekt
nacheinander eingefügt in diesen Buffer und dann wird aus dem, was in dem Buffer steht, ein neuer
String erzeugt. Und dieses Paket, also die Klasse String-Buffer, die hat verschiedene Methoden,
natürlich zum Beispiel, um einen Buffer zu erzeugen, um etwas anzuhängen, um etwas an der
Position einzufügen und, ganz wichtig, um wieder einen String draus zu machen. Und wir haben uns
das Ganze angeschaut anhand eines kleinen Beispielprogramms, indem wir einfach sehr,
sehr häufig eine String-Operation gemacht haben, in unserem Fall 32.000 Mal einfach an einen
bestehenden String ein A hinten rangehängt. Und jetzt können Sie sich überlegen, das wird
32.000 Mal der bis dahin bestehende String in einen String-Buffer geschrieben, dann wird
ein Zeichen angehängt, dann wird daraus wieder ein String gemacht. Okay? Die Alternative ist,
dass Sie eben nicht mit einem String an der Stelle arbeiten, sondern mit einem String-Buffer. Bei
einem String-Buffer haben Sie sehr viel Speicherplatz, dann schreiben Sie einfach rein,
zack, zack, zack, zack, zack, bis Ihr Buffer voll ist. Erst dann muss der Buffer verlängert werden,
muss ein neuer Speicherplatz angelegt werden. Also Sie sehen hier, das unterscheidet sich nur dadurch,
dass wir hier einen String-Buffer statt einem String verwenden. Und wenn wir uns das angeschaut
haben, dann haben wir gesehen, dass das ungefähr den Faktor 1000 ausmacht. Und das ist genau die
Zeit, die Sie brauchen, um immer diese Zwischenoperationen zu machen. Wie gesagt,
bei Verwendung des String-Klasse wird intern in jeder Operation ein neues String-Objekt angelegt,
das ist also verworfen. Und bei der String-Buffer-Klasse werden die Zeichen angefügt,
bis die Kapazität erschöpft ist. Und erst dann müssen wir ein neues Objekt mit einem größeren Buffer
anlegen. Mal schauen, ob das hier ein wenig leiser wird. Wenn wir da die Tür zumachen. Naja, gut.
Anderes Paket, das Sie sicherlich gebrauchen können, das ist das Math-Paket. Und da gibt es
halt auch so alle Arten von mathematischen Funktionen und Konstanten, die Sie sich vorstellen können.
Und wenn Sie das Ganze weiter interessiert, was es so gibt, dann kann ich nur sagen,
RTFM, Read the Manual. Gehen Sie auf die Java-Seite und schauen Sie sich das an,
da ist eine relativ gute Dokumentation darüber, was es so alles an Paketen gibt.
Ja, wir sind jetzt mit der Besprechung der Programmiersprache durch. Wir hatten am Anfang
im zweiten Kapitel den nicht objektorientierten Teil besprochen. Wir haben dann jetzt im vierten
Kapitel den objektorientierten Teil besprochen und worüber wir uns in den nächsten paar Vorlesungen
beschäftigen werden, das sind Datenstrukturen und Algorithmen. Und das erste Unterkapitel wird sein
Rekursion. Rekursion ist eine sehr elegante Methode, um Problemlösungen zu formulieren.
Ist allerdings jetzt von der Berechnung her ein bisschen aufwendiger, deswegen versucht man sehr
Presenters
Zugänglich über
Offener Zugang
Dauer
01:20:59 Min
Aufnahmedatum
2011-06-28
Hochgeladen am
2018-05-07 14:55:34
Sprache
de-DE
Einführung in UNIX/Linux Einführung in die Programmierung mit Java Grundlagen der Rechnerarchitektur Programmiersprachen: von der Maschinensprache zur Objektorientierung Objektorientierte Programmierung Datenstrukturen und Algorithmen: Suchen und Sortieren, Listen, Keller, Bäume Internet, Verteilte Systeme