Die einzigartige String-Initialisierung von Java verstehen
Trotz der objektorientierten Natur von Java wirft die Initialisierung von Strings mit doppelten Anführungszeichen Fragen auf. Wie ist das möglich, wenn Strings zur Klassenstruktur gehören?
Java's Specialized String
Java's Designer versuchten, primitive Typen in einem objektorientierten Rahmen beizubehalten, um die Leistung zu optimieren. Primitive sind im Aufrufstapel untergebracht, wodurch die Speichernutzung und die Manipulationskosten reduziert werden. In der Zwischenzeit belegen Objekte den Programm-Heap, was eine komplizierte Speicherverwaltung und größere Speicheranforderungen mit sich bringt.
Um diese Kluft zu überbrücken, wurde Javas String so konzipiert, dass er Eigenschaften sowohl von Grundelementen als auch von Klassen aufweist.
String-Literale und -Objekte
Bedenken Sie Folgendes Beispiele:
String s1 = "Hello"; // String literal String s2 = "Hello"; // String literal String s3 = s1; // Same reference String s4 = new String("Hello"); // String object String s5 = new String("Hello"); // String object
Das unten verlinkte Bild veranschaulicht dies:
[Bild von String-Pool und Heap-Speicher]
String-Literale (s1 und s2) teilen sich den Speicher innerhalb eines Gemeinsamer Pool, der das Gedächtnis bewahrt. String-Objekte (s4 und s5) befinden sich jedoch im Heap und werden nicht gemeinsam genutzt.
Das obige ist der detaillierte Inhalt vonWie können Strings in Java mit doppelten Anführungszeichen initialisiert werden, obwohl es sich um Objekte handelt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!