Static:
- 加載:java虛擬機在加載類的過程中爲靜態變量分配內存。
- 類變量:static變量在內存中只有一個,存放在方法區,屬於類變量,被所有實例所共享
- 銷燬:類被卸載時,靜態變量被銷燬,並釋放內存空間。static變量的生命週期取決於類的生命週期
類初始化順序:
- 靜態變量、靜態代碼塊初始化
- 構造函數
- 自定義構造函數
結論:想要用static存一個變量,使得下次程序運行時還能使用上次的值是不可行的。因爲靜態變量生命週期雖然長(就是類的生命週期),但是當程序執行完,也就是該類的所有對象都已經被回收,或者加載類的ClassLoader已經被回收,那麼該類就會從jvm的方法區卸載,即生命期終止。
更進一步來說,static變量終究是存在jvm的內存中的,jvm下次重新運行時,肯定會清空裏邊上次運行的內容,包括方法區、常量區的內容。
原文鏈接:http://www.cnblogs.com/hf-cherish/p/4970267.html