Skip to main content

So nutzt du Methoden aus der Java String Klasse

In einen der letzten Beiträge haben wir darüber gesprochen,

  • dass Java Strings – Objekte sind.
  • Dass Strings in allen Programmen äußerst häufig vorkommen
  • Und dass sich deshalb Referenzvariablen String-Objekte im String Pool teilen.

Das Konzept hinter dem String-Pool ist die Teilung der Ressourcen.
Und das bedeutet:

  • Weniger Objekte – mehr Speicher
  • Mehr Speicher – bessere Performance

Es bedeutet aber auch, dass stets und ständig die Sicherheit gewährleistet sein muss.

Wenn ungewiss ist, wie viele Referenzvariablen stets und ständig auf die String-Objekte zeigen – können diese nicht einfach so verändert werden.

Java Strings Pool 4 Verweise 1 Objekt

Wenn du das String-Objekt bzw. dessen Textwert „Matze“ in „Matze2“ ändern würdest, denn hießen alle Nutzer „Matze2“.
Und das wäre blöd.

Deshalb sind Strings besonders geschützt.

In Java sind Strings unveränderbar.

Egal, wie du die Strings erzeugst – Es handelt sich immer um Objekte der Klasse String.

Und diese Klasse befindet sich im Standardpaket der Java API.
Das heißt dann:
Du bekommst bei jedem String-Objekt, welches du anlegst automatisch Methoden dazu.
Und mit diesen Methoden kannst du das String-Objekt verändern.

Lass uns die String-Klasse in den API Docs anschauen.

Java String Klasse API DOCS

Schau dir die Methoden, welche die String-Klasse so bietet einmal an.
Vor allem die Rückgabewerte.
Java Klasse Strings Rückgaben

Dort siehst du als Rückgabe – Strings, Integer oder mitunter auch booleans.

Erst einmal nicht ungewöhnlich…
Wenn du dir allerdings die Beschreibungen der einzelnen Methoden mit String-Rückgabe, genauer anschaust – Dann siehst du, dass bei allen Methoden neue Strings produziert werden.

Der String, welchen du übergibst bleibt unverändert.
Stattdessen geben dir die Methoden neue Strings zurück.

Lass uns das einmal ausprobieren.

So kannst du den String mit einer Methode verändern

Suche dir irgendeine Methode aus den API Docs aus.

Du kannst zum Beispiel Textausschnitte extrahieren.
Dies machst du mit der Methode substring().

  • Du gibst das Objekt ein.
  • Setzt den Punkt und leitest die Punktnotation ein.
  • Und dann schreibst du den Namen der Methode – also substring.
  • In die Klammern setzt du eine Zahl.
    Die Zahl ist die Position des Schriftzeichens, ab wann extrahiert werden soll.

Bei dem Textwert „Matze“ und der Methode substring(2)- würde die Methode den Textwert „tze“ zurückliefern.
Probieren wir es aus.


public class ChatProgramm {
 
public static void main(String[] args) {
String benutzerEins = "Matze"; //neues String-Objekt ohne Konstruktor erstellt        
 
benutzerEins.substring(2); //extrahiert ab dem zweiten Buchstaben
System.out.println(benutzerEins);//Es bleibt dennoch Matze
}
}

Matze bleibt Matze.
Das Objekt wurde nicht verändert.

Aber es wurde ein neues String-Objekt angelegt.
Und zwar direkt in den Pool.

Java-Strings-Substring

Und dieses hat noch keinen Verweis.
Es existiert keine Referenzvariable, welche auf dieses neue Objekt zeigt.

Der „benutzerEins“, aus dem dieses neue Objekt erschaffen wurde, behält seine Referenz.

Das heißt:

  • Wenn du den String veränderst, musst du immer auch einen neuen Verweis anlegen.
  • Ansonsten kannst du den neuen String nicht verwenden.
  • Und der String lebt ohne Referenzvariable, somit ohne Verweis.
  • Der neuer String ist somit Futter für den Garbage Collector.

public class ChatProgramm {
 
public static void main(String[] args) {
String benutzerEins = "Matze";
 
String teilStueck = benutzerEins.substring(2); //extrahiert ab dem zweiten Buchstaben
System.out.println(teilStueck);//Rückgabe tze
}
}

Jetzt verweist die Referenzvariable „benutzerEins“ auf den Matze-String.
Und die Referenzvariable „teilStueck“ auf den extrahierten neuen String.

Zusammenfassung:

  • In Java sind Strings unveränderlich.
    Und das ist auch gut so.
  • Aufgrund dessen, dass Strings im Constant Pool verwaltet werden, können sämtliche Variablen diesen String nutzen.
  • Dadurch muss so ein String-Objekt besonders geschützt sein.
  • Alle Methoden, welche die String-Klasse dir bietet, erschaffen lediglich einen neuen String.
  • Wenn du diesen verwenden möchtest – Musst du immer eine neue Referenzvariable dazu anlegen.

Ähnliche Beiträge

Eine Java Konsoleneingabe machst du über den Scanner

Es wird Zeit für die erste Java Konsoleneingabe. Und diese Eingaben machst du über den Java Scanner. Was ist das? Der Scanner ist eine vorgefertigte Java Klasse, welche Java mit seiner API anbietet. Das heißt du musst nichts selbst erschaffen. Du musst nur wissen, wie du darauf zugreifst. Erst einmal musst du einen Scanner anlegen. […]

Java Objekte leben auf dem Heap

Java-Objekte-Heap

Java hat eine interne Speicherverwaltung. Eigentlich ist es nicht nur eine. Es sind mehrere.   Uns interessieren nur zwei. Methoden und lokale Variablen werden auf dem Stack verwaltet. Und die Speicherverwaltung für Java Objekte und den Instanzvariablen findet auf dem Heap statt.   Ja wieso braucht Java eigentlich zwei Speichersysteme?   Es ist ganz einfach. […]

Ende vom Java Blog?

Falls du hier schon länger dabei bist, wird dir aufgefallen sein – dass kaum noch Beiträge veröffentlicht werden. Das tut mir wirklich leid und dafür möchte ich mich auch entschuldigen. Ich weiß, dass Einige unter Euch den Java-Blog wirklich lieben. Aber es ist verdammt schwierig so ein aufwendiges Thema – stilvoll, unterhaltend und methodisch umzusetzen. […]

Die mathematischen Grundlagen des Dezimalsystems für Java Programmierer

Java Dezimalsystem Mathematik Programmierer

Bei der Java Programmierung benötigst du Kenntnisse über das Dezimalsystem. Allein schon für die technische Umsetzung beim Runden einer Zahl. Oder du möchtest den Kehrwert bzw. den Umkehrwert einer Zahl im Programm bestimmen lassen. Aber auch für das Herausfinden des Stellenwertes – also wieviel Stellen hat eine Zahl – benötigst du das Grundwissen des Dezimalsystems. […]

So kannst du in Java Und Verknüpfung anlegen und auswerten

Java Und

In Java stehen dir eine Menge Operatoren zur Verfügung. Einer dieser Operatoren ist der Und-Operator. Dies ist ein logischer Operator, da dieser sogenannte Wahrheitswerte mit einander verknüpft. Also…. Was erwartet dich in diesem Beitrag? Zuerst möchte ich dir die Aussagenlogik hinter dem Und-Operator zeigen. Also wann sind Aussagen wahr und wann sind diese falsch. Dann […]

So kannst du ein neues Java Projekt mit Eclipse anlegen und konfigurieren

Java Projekt anlegen Eclipse

In diesem Beitrag möchte ich dir zeigen, wie du ein neues Java Projekt mit Eclipse anlegen kannst. Ich werde dir außerdem einen kurzen Überblick über die Konfigurationsmöglichkeiten geben. Dann gebe ich dir noch eine ganz einfache Schritt-für-Schritt-Anleitung für dein allererstes Java Projekt und ich zeige dir, was nach dem Anlegen des Projektes eigentlich passiert ist.

So kannst du Java installieren

Java installieren

Bevor du loslegst und deine ersten Java Programme schreibst, benötigst du die entsprechende Arbeitsumgebung. Du solltest also Java installieren. Und diese Arbeitsumgebung beinhaltet dann Bibliotheken für die einzelnen Java-Standard-Klassen, Dateien um deine Programme auszuführen. Dateien um deine Programme zu packen, Logische Verzeichnisstrukturen