手撕JAVA(三十五)堆污染

堆污染是由於泛型的使用造成的一種潛在危險。 總結起來,堆污染就是因爲使用泛型參數化類內部成員變量,同一類的不同實例對象內部裏面成員變量的類型可能不同, 編譯階段無法發現,運行期間才能被發現的類型轉換錯誤問題。 以下面一圖說明泛型可能帶來的堆污染問題: 虛擬機棧將方法(method)壓棧,局部變量表中的list1會在堆空間中通過new關鍵字開闢內存空間, 並將該片內存空間的地址引用返回給list1。
相關文章
相關標籤/搜索