2012-05-31 14 views
5

Mögliche Duplizieren:
What is the purpose of the expression “new String(…)” in Java?Wann sollte ich String s = new String ("Hello World") verwenden?

Ich weiß, dass String s = new String("Hello World") sollte vermieden werden, da es für „Hallo Welt“ mehr Platz schaffen, die in den meisten Fällen nicht notwendig ist.

Verwandte Frage zu erklären, warum String s = new String("Hello World") ist hier vermieden werden sollte:

What is the difference between "text" and new String("text")?

Aber wann brauchen wir String s = new String("Hello World"), statt String s = "Hello World" zu benutzen? Dies ist eine Interviewfrage, die ich erlebt habe.

Wenn String s = new String("Hello World") in den meisten Fällen vermieden werden sollte, warum Java das immer noch erlaubt?

+0

gleiche Frage gilt für 'new Boolean (true)', wenn Sie tun können, 'Boolean.TRUE'. – Thilo

+0

Es gibt viele triviale Codeabschnitte, von denen Sie nicht erwarten würden, dass Java Sie davon abhält, zu schreiben. 'int a = 5 + 1 - 1;' ist albern, aber legal. –

+1

@Damien_The_Unbeliever: Dieses spezielle Beispiel wird vom Compiler erledigt (während 'new String (" s ");') nicht ist. – Thilo

Antwort

1

1) String s = "Text"; Diese Syntax wird Speicher für "Text" in Heap reservieren. und jedes Mal, wenn Sie diesen "Text" einer anderen Variablen zuweisen, gibt er die gleiche Speicherreferenz für jedes Mal zurück. für Exp -

String aa = "text"; 
    String bb = "text"; 

    if(aa == bb){ 
     System.out.println("yes"); 
    } else { 
     System.out.println("No"); 
    } 

druckt - Ja

aber
String s = new String ("text"); Immer einen neuen Speicherort im Speicher erstellen und jedes Mal einen neuen Verweis zurückgeben. für Exp -

String aa = new String ("text"); 
    String bb = new String ("text"); 

    if(aa == bb){ 
     System.out.println("yes"); 
    } else { 
     System.out.println("No"); 
    } 

druckt - keine

+0

Entschuldigung, können Sie ein konkretes Beispiel geben, wann ich einen neuen String verwenden soll? Ich kenne die Theorie dahinter, nur ein Mangel an Beispielen –

Verwandte Themen