16 - Grundlagen der Informatik [ID:1575]
50 von 480 angezeigt

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

Teil einer Videoserie :

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

Einbetten
Wordpress FAU Plugin
iFrame
Teilen