undefined
Nicht mehr ganz neu hier
cracko
Guest
Strings können in Java auf zwei verschiedene Arten erzeugt werden, mit new oder mit einem Literal. Für den Compiler besteht hier jedoch kein Unterschied, denn alle Stringliterale werden in Java als Instanz der Stringklasse implementiert.was ist der unterschied?
String s1 = "Hallo"; // Stringliteral und Instanz der Stringklasse
String s2 = "Hallo";
String s3 = new String("Hallo"); // eine neue Instanz der Stringklasse
s1 == s2 // true, da dieselbe Referenz
s1.equals(s2) // true, da derselbe Inhalt des Objekts
s1 == s3 // false, verschiedene Referenzen
s1.equals(s3) // true, derselbe Inhalt
jimmyjammyj
Guest
Code:s1 == s2 // true, da dieselbe Referenz s1.equals(s2) // true, da derselbe Inhalt des Objekts s1 == s3 // false, verschiedene Referenzen s1.equals(s3) // true, derselbe Inhalt
cracko
Guest
Gute Frage ;-) Hierzu muss man betrachten, wie Java mit Strings umgeht. Strings in Java sind unveränderbare Objekte, d.h. wer viel mit Strings in einem Programm arbeiten will, sollte über Speicherplatz nachdenken. Anders als z.B. in C wird einem hier (zumindest bis zu einem gewissen Grad) die Arbeit von der Java Virtual Machine (JVM) abgenommen.Hi, kleine Nebenfrage, warum ergibt der 1. vergleich true, da s1 und s2 verschiedene Speicherorte haben und sie eig nicht auf den selben verweisen?
Gruß Jimmy
Willkommen auf PSD-Tutorials.de
In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.
Nächster neuer Gratisinhalt
Statistik des Forums