单例模式 public synchronized static Singleton getInstance() 这里最好加同步处理多线程环境,不然可能导致不是单例 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java中对象的静态变量,只会加载一次, 直到对象被回收,其实两种方法都要创建一个对象,只是创建的时间时间不一样,而第二种写法每次都判断一下,真的是浪费。 还要注意 synchronized 同步。 最近腰好没。 饿汉式(加载类时创建实例)的优点是速度和反应时间教懒汉式单例类稍好些,无需关注多线程问题、写法简单明了、能用则用。缺点是比较占用内存资源(欢迎后面的接着补充)懒汉式(需要时才创建对象)的优点是延时加载、缺点是应该用同步,会有线程安全上的问题(需双重检查加锁-double-check,会影响性能,特别是高并发的情况下更加) 把这个获取对象的方法getInstance() 线程同步,个人觉得一点用没用1.这个方法同步了,只是一个线程调用这个方法时候,别的线程不能调用这个方法,但还是存在 多个线程用同一个单例对象的情况。 只要单例对象中不设置全局的变量就不会存在线程安全问题。 不加同步可能创建出多个实例呢,还是个单例吗?假设2个线程吧,它们同时到达 if (uniqueInstance == null),假设第一个线程早一点点进去,执行 new Singleton();此时uniqueInstance 还为null,知道new Singleton()返回赋值给uniqueInstance 为止但是在uniqueInstance 还为null的时候,第2个线程进来了,又创建了一个Singleton实例。此时第一个线程拿到了第一个Singleton实例,第2个线程覆盖了,拿到了第2个Singleton实例。你不认为这样有问题吗?线程更多的情况下呢? 请看CSDN Java常见问题专栏稍微分析了http://blog.csdn.net/withiter/article/details/8140338 iis整合tomcat找不到servlet js与struts2结合的bug 如何把带有子查询的SQL转换成HQL 关于EJB的新手问题 Struts2如何实现搜索栏 关于Spring的问题,求大神解答 一个关于WebService的设计问题 长字符串换行问题 大量急需J2EE开发人才!!!! 如何获得Jar包的绝对路径 求助大神帮看看这问题应该怎样解决?? POI 导出excel 时Cannot get a error value from a numeric cell
java中对象的静态变量,只会加载一次, 直到对象被回收,其实两种方法都要创建一个对象,只是创建的时间时间不一样,而第二种写法每次都判断一下,真的是浪费。
假设2个线程吧,它们同时到达 if (uniqueInstance == null),假设第一个线程早一点点进去,执行 new Singleton();此时uniqueInstance 还为null,知道new Singleton()返回赋值给uniqueInstance 为止
但是在uniqueInstance 还为null的时候,第2个线程进来了,又创建了一个Singleton实例。此时第一个线程拿到了第一个Singleton实例,第2个线程覆盖了,拿到了第2个Singleton实例。
你不认为这样有问题吗?线程更多的情况下呢?