Java中static成員變量的生命週期

Static:

  • 加載:java虛擬機在加載類的過程中爲靜態變量分配內存。
  • 類變量:static變量在內存中只有一個,存放在方法區,屬於類變量,被所有實例所共享
  • 銷燬:類被卸載時,靜態變量被銷燬,並釋放內存空間。static變量的生命週期取決於類的生命週期

類初始化順序:

  • 靜態變量、靜態代碼塊初始化
  • 構造函數
  • 自定義構造函數

結論:想要用static存一個變量,使得下次程序運行時還能使用上次的值是不可行的。因爲靜態變量生命週期雖然長(就是類的生命週期),但是當程序執行完,也就是該類的所有對象都已經被回收,或者加載類的ClassLoader已經被回收,那麼該類就會從jvm的方法區卸載,即生命期終止。

更進一步來說,static變量終究是存在jvm的內存中的,jvm下次重新運行時,肯定會清空裏邊上次運行的內容,包括方法區、常量區的內容。




原文鏈接:http://www.cnblogs.com/hf-cherish/p/4970267.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章