userText将是使用不同语言的大约7000个字符的字符串。
我想知道执行此代码后如何对字符串进行垃圾回收。为了在unescapeHtml4之后为userText分配一个新值,并在替换后添加相同的内容。

前面的userText字符串会发生什么情况。它们将在字符串池中还是被垃圾收集器删除。

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


-使用userText的一些逻辑-

最佳答案

//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 );
}


动词“存在”表示在GC有权将其杀死之前该对象的存在;-)

09-03 20:06