2014-02-14 60 views
0

我知道字符串(至少在Java中)是不可變的。我沒有試圖清空字符串的內容。刪除Java中的字符串

如果我這樣做,我會使用這樣的:output.setText(outputString);

我的問題是:如果你想減少的空間程序需要通過放棄位存儲串的量,是有辦法做到這一點?

+4

垃圾收集器將爲您收集無法訪問的對象。你不必做任何特別的事情。 –

+0

這是gc的美麗,你不需要做任何類型 –

回答

5

在Java中,垃圾收集是由JVM完成。所以你的問題的答案是否定的。

最好你可以通過確保Object沒有被引用到任何地方來讓對象有資格進行垃圾回收。一種方法是將任何變量引用設置爲null,引用有問題的對象並調用System.gc()

String outputString ="Some Value"; 
outputString =null 

對象"Some Value"在堆內存沒有從任何地方引用,併成爲資格進行垃圾回收。

System.gc()提示 JVM做垃圾回收。不能保證該對象將從堆內存中釋放。

-1

除了abhinav的回答,你可能會想到對正在發生很多事情的字符串進行intern()。再次記住,游泳池在pre-gen區域,因此它們很難被收集gc .....

+0

請說明downvote的原因。 –