Java-单例模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-单例模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1675字,纯文字阅读大概需要3分钟。
内容图文
![Java-单例模式](/upload/InfoBanner/zyjiaocheng/607/8c32d404b49d4a169e90ba6f696bd1a2.jpg)
我的CSDN: https://blog.csdn.net/weixin_45910779/article/details/113699282
单例模式
单例(Singleton)模式是设计模式之一,最显著的特点就是一个类在一个JVM中只有一个实例,避免繁琐的创建销毁实例。
public class Singleton_Test {
private Singleton_Test(){
System.out.println("私有化构造方法");
}
}
构造方法私有化(private),外部无法new实例化。
所以提供一个public static 方法 getInstance(),外部通过这个方法获取对象,并且由于是 实例化的同一个类,所以外部每次调用都是调用同一个方法,从而实现一个类只有一个实例。
public static void main(String args[]) {
Singleton_Test test1 = Singleton_Test.getInstance();
Singleton_Test test2 = Singleton_Test.getInstance();
System.out.println(test1 == test2);
/*输出
私有化构造方法
true
*/
}
实例化的是同一个类,只调用一次构造方法。
饿汉式
这种方式无论是否调用,加载时都会创建一个实例。
private static Singleton_Test Instance = new Singleton_Test();
public static Singleton_Test getInstance(){
return Instance;
}
懒汉式
这种方式,是暂时不实例化,在第一次调用发现为null没有指向时,再实例化一个对象。
private static Singleton_Test Instance ;
public static Singleton_Test getInstance(){
if (Instance == null){
Instance = new Singleton_Test();
}
return Instance;
}
区别
-
饿汉式的话是声明并创建对象(他饿),懒汉式的话只是声明对象(他懒),在调用该类的 getInstance() 方法时才会进行 new对象。
-
饿汉式立即加载,会浪费内存,懒汉式延迟加载,需要考虑线程安全问题
-
饿汉式基于 classloader 机制,天生实现线程安全,懒汉式是线程不安全。需要加锁 (synchronized)校验等保证单例,会影响效率
单例模式要点
-
构造方法私有化
private Singleton_Test(){} -
私有静态(static)类属性指向实例
private static Singleton_Test Instance -
使用公有静态方法返回实例
public static Singleton_Test getInstance(){ return Instance;}
内容总结
以上是互联网集市为您收集整理的Java-单例模式全部内容,希望文章能够帮你解决Java-单例模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。