标签:Singleton 常问 instance 对象 private 面试 实例 new 设计模式
简便回答版
- 单例模式:单例对象对应的类只有一个实例存在,就是在内存中只有一个对象存在,它不用去频繁的new和销毁对象,大大节约了内存。
1.懒汉式单例:一开始没有被实例化,需要用的时候自己去实例化创建,代码原理就是:定义一个静态的对象但是不去new它,需要用这个对象的时候再去new。
public class Singleton {
//默认不会实例化,什么时候用就什么时候new
private static Singleton instance = null;
private Singleton(){
}
public static synchronized Singleton getInstance(){
if(instance == null){
//什么时候用就什么时候new
instance = new Singleton();
}
return instance;
}
}
2.饿汉式单例:类一开始加载的时候就将对象实例化完成了,后面需要用的时候直接拿对象就行了。
public class Singleton {
//一开始类加载的时候就实例化,创建单实例对象
private static Singleton instance = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
}
2.工厂模式:spring就是工厂模式,通过bean将对象注入到beanFactory工厂里面,后续创建对象就是工厂帮我们创建对象,我们只需要调用就可以了。
标签:Singleton,常问,instance,对象,private,面试,实例,new,设计模式 来源: https://blog.csdn.net/weixin_49092494/article/details/121412713
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。