Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Jetzt lerne ich Java 6

Der StringBuilder

Testen Sie unsere 2013 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Java lernt dazu: Seit der Version 1.2 gibt es den 'StringBuffer', der die Performanceprobleme der String-Bearbeitung in Java erfolgreich bekämpft. Und mit Java 1.5 wurde der 'StringBuilder' ergänzt, der für Single-Thread-Anwendungen noch etwas schneller arbeitet.
11:45

Transkript

Zum Ende der Kapitel des Strings möchte ich noch einmal auf die Stringbuffer und Stringbuilder angehen und dieses eben Praxis Extrem ist wichtig. Wie ich bereits in der Einnführung zur Strings erzählt habe die Strings nach der Instanzierung sie sind hier Classen und damit ist jedes String, wenn Sie anlegen ein Objekt, der istanziert wann muss nicht mehr veränderbar. Das bedeuted, wenn Sie Operationen auf Strings durchführen zum Beispiel, wie Zeichenerkennen zusammenführen, einen Substring bilden oder vielleicht noch Zeichen setzen, weil diese Operationen mit grundsätzlich eine neue Instanz der Stringclasse abgeleitet Sie bekommen ein neues Objekt das Alte wird eben von Debug College entwernt und wenn Sie dann eben zu unterschleife Exterm ist viele Stringoperationen durchführen, dann kann es ein kleines ihre Laufzeitumgebung Extrims belastet wird und Sie in jegliche Performentslocher fallen. Um diese Problematik zu melden gibt es Java 1.2 eine eigene Classe, die sich StringBufferlang, die finden Sie in Java.lang, die wollen uns kurz anschauen, dafür gebe ich einfach mal Java. lang ein Punkt (.), und jetzt sehen Sie alle Classen wieder erfanden sind und hier einfach mal String ein und dann finden Sie hier eine Classe StringBuffer es wird das Ganze es besser sehen, wenn ich immer Doppelklick darauf machen und mal versuchen das Ganze zu markieren, rechte Maus das ich darauf show javadoc, eine fritz der Browser mit der entsprechenden Dokumentation Sie können wenn Sie etwas nachruter scollen die Methoden sehen, die diese Classe mitbringt und dann sehen Sie, dass hier zum Beispiel hier einigen Methoden zur Anführung von Zeichen haben, Sie haben Methoden zum Löschen von Zeichen innerhalb von Zeicheketten zum Einführung und einigen mehr Das heißt es ist eine sehr konfortable Artenweise mit Zeichenketten so arbeiten Zu dem aber der StringBuffer so das direkt ein Speichebereich festgelegt hat, indem sich nun diese Zeichenoperation bewegen standard mäßig werden automatisch 16 Zeichen Platz geschaffen, Sie können aber auch behand mir Speiche direkt reservieren und so beide Speichen Platz aufgebraucht des Sprech Sie hängen einen weiteren String an jet diese Spreiche wird automatisch reserviert weiter das dauert natürlich auch ein bischen aber es wird nicht eine neue Instanz gegrünget und das Alte muss weg geschmiesen werden von den Zweiten hab ich erweitert. Das ist firmenmäßig, natürlich viel viel effizienter Mit Java 1.5 hat StringBuffer dann noch ein Collegen mitgebracht, und der heißt StringBuilder das ist so zu sagen ja schmalspur Variante von StringBuffer Ich würde eher sagen ich die jedoch etwas performatere Lösung Dieser funktionier wie gesagt nur ab Java 1.5, das heißt Sie müssen eine entsprechende Laufzeitumgebung haben, wenn Sie das erhöhen wollen, aber der StringBuilder hat einen großen Vorteil und das versuchen uns jetzt auch nochmal gerade in der Dokumentation anzuschauen und zwar jet finden den Unterschied hier direkt in den ersten Teil Hier steht nähmlich das StringBuilder nicht synchronizes, das heißt StringBuilder ist nicht Treat-sicher und damit brauche es natürlich zur Laufzeit vieles Dingen nicht sicher stellen was zum beispiel StringBuffer tut und daher ist es StringBuilder in vielen Fallen noch viel viel schneller Sie müssen immer noch achten, dass Sie nicht unbedingt Treat-Sicherheit benötigen in den Fall, was eben in meisten Fällen überhaupt nicht notwendig ist Daher werden wir in unserem Beispiel den StringBuilder verwenden und erst wenn wir über Tracking reden, könnten die gegebenen files dann aus StringBuilder das StringBuffer wenden. Aber das ist ein Thema für vorgeschrittene Programmiere Also wir werden jetzt in diesen Filme versuchen mit Hilfe von StringBuilder Stringoperationen durchzuführen Da diese Classen in Java. lang gehen, müssen Sie diese noch nie viel Mal explizit impotieren. Im ersen Schritt wollen wir natürlich erste Mal einen entsprechenden StringBuffer anlegen muss, geht so definieren den Typ den wir brauchen, das heißt StringBuffer drücken hier das große B, die Wortstelle werden in Java camelcase geschrieben das bedeuted immer den nächste Wortstamm bekommt ein groß Buchstaben Dann nehmen wir einfach mal strbuf oder so und instanzieren den mit Schlusselwort new das eine Sache aus der Objektorientierung werden Sie noch lernen So haben jetzt also ein Objekt abgeleitet hier aus der Classe StringBuffer und damit steht Ihnen jetzt schon ein leere StringBuffer zur Verfügung Wir können jetzt hier direkt schon mal was anfügen wenn wir wollen oder einfügen wenn wir wollen ja mit Sicherheit mit englischen Zeichenketten, aber uns es geht einfach, wir sagen strbuf. und dann haben hier append also hinzufügen, einfügen und jetzt sehen wir was für alles hineinlegen können in ein Fall würde ich nochmal sagen Hallo, guten Morgen das für ein guten Morgen sein. und schon haben wir also hier was dran legen und Sie sehen dass das natürlich auch für die Ausgabe geeignet ist, was wir hier tun das wir direkt ausgeben Ausgabe+strbuf, jetzt gibt es eigentlich eine Methode to String um das Ganze wieder an String um zu wandeln wir können aber auch hier das jetzt einfach die Java Ungebung selber machen lassen und wenn ich das Ganze jetzt hier, auser wenn lasse auch hier jetzt und Sacheausgabe aus dem StringBuffer und dabei jetzt können wir natürlich mit appent immer weitere Dinge hinzufügen aber mich würde jetzt erste mal interessieren ein paar Informationen über diesen StringBuffer zu bekommen und dafür gibt es auch entsprechende Methoden wir lassen das auch direkt ausgehen und zwar würde mich interessieren wie lange jetzt einig den Inhalt innerhalb des StringBuffers ist dazu strbuf, mal schauen was das so passen würde in zweitens Fall length hier sehen also Sequence length correct account ok damit wissen also wieviel Zeichen nun zur Zeit angegeben worden sind hier sollten wir natürlich auch noch ein Plus setzten, da hat.........also dreht und da ich hier eben auch bereits erwähnt habe das StringBuffer so arbeitet, das es direkt ein Speichebereich angelegt wird, also eine Bereich für Zeichen abgelegt werden können damit nicht etwas neue angelegt werden muss, können wir uns auch mal einfach ausgeben lassen, wie groß so ein StringBuffer einmischt ist und das ist die Kapazität und hier für gibt es auch eine Methode, die uns das Ganze ausgibt und das ist die Methode hier capacity und wenn wir uns das durchfüren lassen, ausführen lassen, sehen wir zur Zeit haben wir eine Inhaltsmenge von 20 Zeichen und die Kapazität sind insgesamt für Moment 34 Zeichen, das ist eine ganz interessante Sache denn wenn ich jetzt kurze hantiere mal diese Anfügung hier auskomentiere, das heißt wir legen hier oben einfach mal ein ganz leeren StringBuffer an und schauen uns das dann hier mal kurz an dann sehen wir, dass wir zur Zeit eine Inhaltsmenge von Null haben also wenn noch gar keine Zeiche reingelegt, aber trotzdem haben wir jetzt bereits eine Kapazität von 16 Zeichen das heißt legen Sie ein leeren StringBuffer oder ein leeren StringBuilder an dann haben Sie automatisch 16 Zeichen zur Verfügung legen Sie etwas hinein was an die Grezen kommt, wird automatisch der StringBuffer oder StringBuilder erweitert für sich und demenntsprechend müssen Sie sich also nicht davon kommen Sie können aber, wenn Sie wollen direkt im Anfang bei anlegen das StringBuffer so das StringBuilder hingehen und direkt sagen du ich hab nicht lange Zeichenketten direkt 150 und wenn ich das mir jetzt anschaue, sehen wir dann haben Sie die Kapazität request gelegt und wenn Sie dann hier zum Beispiel zur Anfügung arbeiten machen dann gibt das Ganze natürlich für schneller, denn jetzt muss ich die Kapazität ersmal überhaupt nicht erweitern also eine sehr praktische Geschichte dann ist haufig hier noch die Frage in welchen Fällen würden den normaleweise jetzt ist die normalen Stringoperation für uns problematisch werden schauen wir uns nochmal kurz, folgen das einig mrkiere zu mal einfach eine Schleife denn so etwas kommt immer wieder da for ich hab also jetzt hier einfach mal eine c Schleife die läuft insgesamt 100 Mal durch und hänge jetzt einfach mal fröhlich mit append in welchen Zeichen an nimm man escape sequence neue Zeile oder nachbarn ein hübsches smile in darein und schon hätten wir ein relativ großes Problem bei normalen Strings denn jetzt würde entsprechend jedes Mal eine neue Instanzt gegrünget werden und wir hätten dann ganz vielen Leichen in Speiche legen wie dann nach und nach aufgrund wir müssten und hier mit entsprechende das ganze das Flot gehen wenn wir haben genug Kapazität und wenn wir diese Information uns dann einfach nur zum Schluss ausgeben lassen also nachdem ich Schleife durchlaufen gelassen haben hier in dieser Stelle können wir das jetzt sehen das hier dann entsprechend der Inhaltslänge auf 515 Zeichen erwacksen ist und die Kapazität mittlerweile 606 Zeichen erweitert worden als eine relativ konfortable Geschichte jetzt kann es sein zum Schluss nach vielen Operationen, wie gesagt, es gibt alles mögliche Löschen von Zeichen, Zerschneiden, Austauschen von Zeichen wieder normalen String brauchen, auch das möchte ich Ihnen natürlich noch zeigen das ist dann das ganz normale Umwandeln am Ende Sie brauchen ein normalen String, nehmen wir der normal, geben Sie einfach an und sagen, nehm der StringBuffer und wandeln das mit toString um in einen normalen String und damit diese nun hier normal, und Sie können ganz normal weiter verwenden. Jetzt habe ich durchgehend hier StringBuffer verwendet wenn Sie gerne wollen, dann können Sie hier oben sagen do, das ist kein StringBuffer, sondern es ist ein StringBuilder und hier hinten müssten Sie das natürlich auch noch entsprechend anpassen und schon sehen Sie läuft der Script ohne weitere Änderungen den StringBuilder und StringBuffer der einzig Unterschied ist das eine ist Treat-sicher, das andere nicht, das nicht Treat-sichere ist ein kleines bischen schneller schöne Sache aber sonst können Sie diese eben den gleichen Methoden verwenden.

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!