1. 纯静态属性和纯静态方法类,如果同样将构造函数私有, 看上去都吥需要去new一个对象了, 好像还比单例省资源哦!
2. 单利模式的懒汉式一般建议在静态方法中加了一个同步!, 奇怪的是同步是针对对象而言的,而却在一个静态方法上加上了synchronized , 这也是让人较费解的一个问题之一!
3. 为了在静态方法中使用那个单例模式对象, 只有将它设置成为了静态属性; 到底这样的同步有何用哎?。。
2. 单利模式的懒汉式一般建议在静态方法中加了一个同步!, 奇怪的是同步是针对对象而言的,而却在一个静态方法上加上了synchronized , 这也是让人较费解的一个问题之一!
3. 为了在静态方法中使用那个单例模式对象, 只有将它设置成为了静态属性; 到底这样的同步有何用哎?。。
这是为了防止多个单例出现:
不用同步处理方式在单线程的模式下可以很好的运行;但是在多线程模式下,可能产生问题。如果第一个线程发现成员变量为null,准备创建对象;这是第二 个线程同时也发现成员变量为null,也会创建新对象。这就会造成在一个JVM中有多个单例类型的实例。如果这个单例类型的成员变量在运行过程中变化,会 造成多个单例类型实例的不一致,产生一些很奇怪的现象。例如,某服务进程通过检查单例对象的某个属性来停止多个线程服务,如果存在多个单例对象的实例,就 会造成部分线程服务停止,部分线程服务不能停止的情况。
{
........
} public synchronized static void m2()
{
........
}
}上面列子的两个同步锁住的是不同对象的,m1()为this,m2()为Foo.getClass(),因此如果这两个函数共享了相同的变量时,那么这个类就不是线程安全的。