单例模式

java单例模式

Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在。
很多操作如目录、数据库连接都需要这样的单线程操作。
singleton能够被状态化,多个单态类就可以一起作为状态仓库一样对外服务了。

singleton也可无状态化,提供工具性质。

还可节省内存,有利于java垃圾回收。
<pre name="code" class="java">package 单例模式;

public class Animal {
	//饿汉式:不管用不用得上,先创建对象
	private static Animal am = new Animal();
	private Animal(){
		
	}
	public static Animal getInitAmnim(){
		return am;
	}
}



<pre name="code" class="java">package 单例模式;

public class Person {
	//懒汉式单例
	private static Person per;
	private Person(){
		
	}
	public static synchronized Person getInitPerson(){
		if( per == null ){
			per = new Person();
		}
		return per;
	}
}

饿汉式优点是:线程安全,反应速度快。

缺点是:资源利用率不高,对象可能永远用不到,但是却实例化。

懒汉式优点是:资源利用率高。
缺点是:第一次加载速度没那么快,多线程同步开销大。

你可能感兴趣的:(Singleton,对象,java设计模式)