单例模式应用的场景:
(1)资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。
(2)控制资源的情况下,方便资源之间的互相通信。如线程池等
饿汉式:对象随着类的加载就在内存中开辟了空间,懒汉式:初始为空,当调用时才实例化,节省空间、提高性能
另外需注意:同步中嵌套同步会造成死锁,如下图:
注:JDK1.5以后synchronized被lock取代
单例模式应用的场景:
(1)资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。
(2)控制资源的情况下,方便资源之间的互相通信。如线程池等
饿汉式:对象随着类的加载就在内存中开辟了空间,懒汉式:初始为空,当调用时才实例化,节省空间、提高性能
另外需注意:同步中嵌套同步会造成死锁,如下图:
注:JDK1.5以后synchronized被lock取代