java弱引用的定義:只具備弱引用的對象擁有更短暫的生命週期。在垃圾回收器線程掃描它所管轄的內存區域的過程當中,一旦發現了只具備弱引用的對象,無論當前內存空間足夠與否,都會回收它的內存java
先讓一個對象同時有一個強引用和一個弱引用,此時進行垃圾回收不會回收弱引用
而後使強引用再也不指向這個對象,因此這個對象就只剩下了一個弱引用,那麼,若是咱們再進行一次垃圾回收,就會回收這個對象的弱引用spa
結果以下線程
讓強引用指向別的對象,或者讓str對String對象的強引用超出做用域(例如建立個方法,讓建立對象的代碼在這個方法裏執行,main方法調用這個方法),均可以讓String對象的強引用消失對象