我知道字符串(至少在Java中)是不可變的。我沒有試圖清空字符串的內容。刪除Java中的字符串
如果我這樣做,我會使用這樣的:output.setText(outputString);
我的問題是:如果你想減少的空間程序需要通過放棄位存儲串的量,是有辦法做到這一點?
我知道字符串(至少在Java中)是不可變的。我沒有試圖清空字符串的內容。刪除Java中的字符串
如果我這樣做,我會使用這樣的:output.setText(outputString);
我的問題是:如果你想減少的空間程序需要通過放棄位存儲串的量,是有辦法做到這一點?
Java中有一個自動垃圾回收器。
在Java中,作爲顯影劑沒有明確除去在 程序代碼的存儲器,所述垃圾收集器發現了不必要的(垃圾) 對象和刪除它們。
http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/
在Java中,垃圾收集是由JVM完成。所以你的問題的答案是否定的。
最好你可以通過確保Object沒有被引用到任何地方來讓對象有資格進行垃圾回收。一種方法是將任何變量引用設置爲null,引用有問題的對象並調用System.gc()
。
String outputString ="Some Value";
outputString =null
對象"Some Value"
在堆內存沒有從任何地方引用,併成爲資格進行垃圾回收。
System.gc()
提示 JVM做垃圾回收。不能保證該對象將從堆內存中釋放。
除了abhinav的回答,你可能會想到對正在發生很多事情的字符串進行intern()。再次記住,游泳池在pre-gen區域,因此它們很難被收集gc .....
請說明downvote的原因。 –
垃圾收集器將爲您收集無法訪問的對象。你不必做任何特別的事情。 –
這是gc的美麗,你不需要做任何類型 –