java中的static代碼塊為什么只執行一次


原因在最后,這是其中的一個小例子。

如:

  SessionFactory負責保存和使用所有配置信息,消耗內存資源非常大

  所以一個web項目要保證只創建一個SessionFactory

  那么在使用hibernate創建一個工具類(HibernateUtils),用於獲取Session對象時需要將其放在static代碼塊中,

  又因下邊的每個方法需要使用SessionFactory對象sf,所以將其單獨拆出放在方法外。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

static代碼塊只執行一次原因:

      static代碼塊只在類加載時執行,類是用類加載器來讀取的,類加載器是帶有一個緩存區的,

      它會把讀取到的類緩存起來,所以在一次虛擬機運行期間,一個類只會被加載一次,這樣的話

      靜態代碼塊只會運行一次

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM