标签:初始化 getInstance SingletonDemo01 SingletonDemo02 模式 static 单例 out
一、
二、
1. 饿汉式:类初始化时,会立即加载该对象,线程天生安全,调用效率高。
2. 懒汉式: 类初始化时,不会初始化该对象,真正需要使用的时候才会创建该对象,具备懒加载功能
public class TestModel {
public static void main(String[] args) {
SingletonDemo01 instance1 = SingletonDemo01.getInstance();
SingletonDemo01 instance2 = SingletonDemo01.getInstance();
System.out.println(instance1 == instance2);
SingletonDemo02 instance3 = SingletonDemo02.getInstance();
SingletonDemo02 instance4 = SingletonDemo02.getInstance();
System.out.println(instance3 == instance4);
}
}
// 饿汉式
class SingletonDemo01{
// 类初始化时,会立即加载该对象,线程天生安全,调用效率高
private static SingletonDemo01 singletonDemo01 = new SingletonDemo01();
private SingletonDemo01(){
System.out.println("SingletonDemo01初始化");
}
public static SingletonDemo01 getInstance(){
System.out.println("getInstance");
return singletonDemo01;
}
}
// 懒汉式
class SingletonDemo02 {
//类初始化时,不会初始化该对象,真正需要使用的时候才会创建该对象。
private static SingletonDemo02 singletonDemo02;
private SingletonDemo02(){
}
public synchronized static SingletonDemo02 getInstance(){
if(singletonDemo02 == null){
singletonDemo02 = new SingletonDemo02();
}
return singletonDemo02;
}
}
标签:初始化,getInstance,SingletonDemo01,SingletonDemo02,模式,static,单例,out 来源: https://www.cnblogs.com/jock766/p/14060315.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。