java中的static代码块为什么只执行一次


原因在最后,这是其中的一个小例子。

如:

  SessionFactory负责保存和使用所有配置信息,消耗内存资源非常大

  所以一个web项目要保证只创建一个SessionFactory

  那么在使用hibernate创建一个工具类(HibernateUtils),用于获取Session对象时需要将其放在static代码块中,

  又因下边的每个方法需要使用SessionFactory对象sf,所以将其单独拆出放在方法外。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

static代码块只执行一次原因:

      static代码块只在类加载时执行,类是用类加载器来读取的,类加载器是带有一个缓存区的,

      它会把读取到的类缓存起来,所以在一次虚拟机运行期间,一个类只会被加载一次,这样的话

      静态代码块只会运行一次

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM