单例模式---恶汉模式
单例模式 package single;public class Monitor { //开始没有班长,用静态属性表示 private static Monitor monitor=null; //构造方法私有化,防止出现多个班长对象 private Monitor(){}; public static Monitor getmonitor(){ if(monitor==null){ monitor=new Monitor(); } return monitor; }} 首先班里没有班长,用静态属性表示. 将班长类中的班长属性私有化,防止在其他地方实例化,出现多个班长对象. 定义一个获取班长的方法,没有就new一个,有的话就返回已有对象. 以上代码看起来逻辑正确,但是学习过多线程就能够知道,该类存在线程安全问题. 现在有线程A,B,全部在monitor=null的情况下进入方法体中,这样就会有两个班长对象产生,显然是不对的,那么我们让代码更新一下 package single;public class Monitor { //开始没有班长,用静态属性表示 private static Monitor monitor=null; //构造方法私有化,防止出现多个班长对象 private Monitor(){}; public static synchronized Monitor