10 Dinge, die jeder Java-Programmierer über String bei Infocampus wissen sollte

Angesichts der starken Verwendung von Java String in fast jedem Projekt wird es umso wichtiger, subtile Details über String zu erfahren. Obwohl ich bereits viele Artikel im Zusammenhang mit String in Java revisited veröffentlicht habe, ist dies ein Versuch, einige der String-Features zusammen zu bringen. In diesem Tutorial werden wir einige wichtige Punkte über Java sehen, die es wert sind, sich daran zu erinnern. Sie können auch meine früheren Post 10 Java-Fragen beziehen, um mehr über String zu erfahren.

Obwohl ich versucht habe, viele Dinge zu erfassen, gibt es definitiv wenige Dinge, die ich vielleicht verpasst hätte; Bitte lassen Sie mich wissen, wenn Sie irgendwelche Fragen oder Zweifel über die Funktionalität von java.lang.String haben und ich werde versuchen, sie hier anzusprechen.

1) Zeichenfolgen sind in Java nicht null-terminiert.

Im Gegensatz zu C und C ++ endet Java nicht mit Nullzeichen. Stattdessen sind Objekt in Java und durch Zeichenarray gesichert. Sie können das Zeichen-Array abrufen, das in Java verwendet wird, indem Sie die toCharArray () - Methode der java.lang.String-Klasse von JDK aufrufen.

2) Strings sind in Java unveränderlich und endgültig

Zeichenketten sind in Java unveränderlich. Das bedeutet, dass Sie den Inhalt von Zeichenketten nicht ändern können. Wenn Sie sie ändern, indem Sie toLowerCase (), toUpperCase () oder eine andere Methode verwenden, führt dies immer zu new. Da es endgültig ist, gibt es keine Möglichkeit, irgendeine Funktionalität zu erweitern oder außer Kraft zu setzen. Jetzt, wenn Sie verwirrt sind, warum String in Java unveränderlich oder endgültig ist. Überprüfe den Link.

3) Strings werden in String Pool beibehalten

Wie ich schon sagte, ist spezielle Klasse in Java und alle wörtlichen, z. "abc" (alles was in doppelten Anführungszeichen steht, sind in Java literal) werden in einem separaten String-Pool, einem speziellen Speicherort innerhalb des Java-Speichers, genauer gesagt in PermGen Space, verwaltet. Jedes Mal, wenn Sie ein neues Objekt mit einem Literal erstellen, prüft JVM zuerst den String-Pool und wenn ein Objekt mit ähnlichem Inhalt verfügbar ist, gibt es das zurück und erstellt kein neues Objekt. JVM führt keine Stringpoolprüfung durch, wenn Sie ein Objekt mit einem neuen Operator erstellen.

4) Verwenden Sie Equals-Methoden zum Vergleich von String in Java

Die String-Klasse überschreibt die Methode equals und stellt eine Inhaltsgleichheit bereit, die auf Zeichen, Fall und Reihenfolge basiert. Wenn Sie also zwei Objekte vergleichen wollen, um zu prüfen, ob sie gleich sind oder nicht, verwenden Sie immer die Methode equals () anstelle des Gleichheitsoperators. Wie im vorherigen Beispiel, wenn wir die equals-Methode verwenden, um Objekte zu vergleichen, sind sie einander gleich, da sie alle denselben Inhalt enthalten.

5) Verwenden Sie die Methode indexOf () und lastIndexOf () oder die Methode matchs (String regex), um in String zu suchen

class in Java bietet eine praktische Methode, um zu sehen, ob im aktuellen Objekt ein Zeichen oder ein Sub- oder ein Muster existiert. Sie können indexOf () verwenden, das die Position des Zeichens zurückgibt, oder, falls das im aktuellen Objekt vorhanden ist, oder -1, wenn das Zeichen nicht in existiert. lastIndexOf ist ähnlich, sucht aber ab Ende. .match (Regex) ist noch leistungsfähiger, was es Ihnen erlaubt, nach einem regulären Ausdruck zu suchen.

6) Verwenden Sie Sub, um einen Teil von Java zu erhalten

Java bietet eine weitere nützliche Methode namens sub (), mit der man Teile davon erhalten kann. Im Grunde geben Sie den Start- und End-Index an und die substring () -Methode gibt das Zeichen aus diesem Bereich zurück. Der Index beginnt bei 0 und endet bei 1. Übrigens gibt .length () die Anzahl der Zeichen in String zurück, einschließlich Leerzeichen wie Tabulator, Leerzeichen. Ein Punkt, an den es sich zu erinnern gilt, ist, dass sub auch von einem Zeichenarray unterstützt wird, das vom Original verwendet wird. Dies kann gefährlich sein, wenn das ursprüngliche Objekt sehr groß und sehr klein ist, da sogar ein kleiner Bruchteil eine Referenz des vollständigen Arrays enthalten kann und verhindert, dass es als Müll gesammelt wird, selbst wenn es keinen anderen Verweis für dieses spezielle Objekt gibt.

7) "+" ist für die String-Verkettung überladen

Java unterstützt das Überladen von Operatoren nicht, ist jedoch speziell und der Operator + kann verwendet werden, um zwei zu verketten. Es kann sogar verwendet werden, um int, char, long oder double zu konvertieren, indem einfach mit leer verkettet wird. "Intern + wird mit StringBuffer vor Java 5 und StringBuilder ab Java 5 implementiert. Dies bringt auch den Punkt StringBuffer oder StringBuilder für manipulierend.

8) Verwenden Sie trim (), um weiße Bereiche zu entfernen

Java bietet trim () -Methode, um Leerraum von beiden Seiten zu entfernen. Wenn trim () Leerzeichen entfernt, wird ein neues zurückgegeben, andernfalls wird dasselbe zurückgegeben. Zusammen mit trim () bietet auch replace () und replaceAll () Methode zum Ersetzen von Zeichen aus. replaceAll-Methode unterstützt sogar regulären Ausdruck.

9) Verwenden Sie split () zum Teilen mit Regular Expression

Java ist reich an Funktionen. Es hat Methoden wie split (regex), die beliebige in Form von regulären Ausdruck nehmen können und basierend darauf aufteilen. besonders nützlich, wenn Sie mit einer kommagetrennten Datei (CSV) arbeiten und ein einzelnes Teil in einem Array haben möchten.

10) Speichern Sie keine sensiblen Daten

Sicherheitsbedrohungen darstellen, wenn sie zur Speicherung sensibler Daten wie Passwörter, SSN oder anderer sensibler Informationen verwendet werden. Da es in Java unveränderlich ist, gibt es keine Möglichkeit, Inhalte zu löschen und da sie im Pool bleiben (im Falle von String-Literalen) bleiben sie länger auf dem Java-Heap, was das Risiko für jeden sichtbar macht, der Zugriff auf Java-Speicher hat. wie Lesen aus dem Speicherabbild.