2017-10-17 24 views
0

userText wird eine Zeichenfolge von etwa 7000 Zeichen in verschiedenen Sprachen sein. Ich frage mich, wie die Zeichenfolgen nach dem Ausführen dieses Codes Müll gesammelt werden. Für annehmen nach unescapeHtml4 userText wird ein neuer Wert und die gleiche Sache nach dem Ersetzen zugewiesen.Java 8 String Garbage Collection

was passiert mit der vorherigen Zeichenfolge von userText. Sind sie im String Pool oder werden sie vom Garbage Collector entfernt?

String userText = context.getRequestParameter("addedText"); 
if (someCondition) 
{ 
    userText = StringEscapeUtils.unescapeHtml4(userText)); 
} 
else 
{ 
    userText = userText.replace(charsequence1, charsequence2); 
} 

- einige Logik usertext ---

+2

7000 Zeichen ist so weit weg von "großen" wie es nur geht. – luk2302

+0

@ luk2302 was ist mit 6999? Oder ... 6998 (das könnte eine Weile dauern ...) :) –

+0

@AndyTurner: Wenn 7000 weit davon entfernt sind, groß zu sein, sind auch diese kleineren Zahlen. Selbst wenn man es mit zehn multipliziert, würde es sich nicht lohnen, über die Speicherbereinigung nachzudenken. – Holger

Antwort

0
//This String object will live as long as "context" will live 
String userText = context.getRequestParameter("addedText"); //"addedText" goes to a String Pool 
if (someCondition) 
{ 
//This String object will live as long as "userText" variable is accessible 
    userText = StringEscapeUtils.unescapeHtml4(userText)); 
} 
else 
{ 
//This String object will live as long as "userText" variable is accessible 
    userText = userText.replace(charsequence1, charsequence2); 
} 

Verb "leben" bedeutet Existenz des Objekts vor dem GC ein Recht, es zu töten, haben ;-)

+0

Der Text von context.getRequestParameter ("addedText") wird also im String-Konstantenpool sein, solange die Anwendung aktiv ist. GC entfernt nicht von SCP? –

+1

Dmitry schrieb, dass "addedText" wird da sein, nicht 'context.getRequestParameter (" addedText ")'. – Tom

+0

oh sorry darüber, meine Zweifel ist, was passiert mit allen Strings in SPC, die entweder aus dem, den wir aus dem Kontext oder die wir von unescapeHtml4 erhalten haben oder Methoden ersetzen. werden sie in SPC sein, bis die Anwendung läuft. –