什么是java单例模式

互联网 19-11-11

什么是单例模式?

单例模式是保证类的实例是单例的一种常见设计模式。

单例模式的优点:

(1)首先肯定是节省内存资源,不管多频繁的通过暴露的方法创建实例,都能保证创建的对象在系统内存中是同一实例对象;

(2)灵活性,由于所有实例的创建都由该类控制,所有该类可以灵活的更改实例化过程;

(3)实例的受控访问,单例类可以轻松的控制唯一实例的受控访问;

单例模式的缺点:

(1)单例模式没有接口,不容易扩展;

(2)使用时不能用反射模式创建单例,否则会实例化一个新的对象;

(3)使用懒单例模式时注意线程安全问题;

实现单例模式的方式:

package index; public class Superman {     //空的构造器     private Superman(){}          //实例化对象     private static Superman supermanInstance = new Superman();          //获取实例化对象的静态函数getSupermanInstance()     public static Superman getSupermanInstance(){         return supermanInstance;     } }

懒单例方式(单线程写法)

package index; public class Superman {     //空的构造器     private Superman(){}      //实例化对象;只声明 不使用new进行实例化     private static Superman supermanInstance = null;      //获取实例化对象的静态函数getSupermanInstance()     public static Superman getSupermanInstance(){         if(supermanInstance==null){ //如果为null的情况再进行实例化             supermanInstance = new Superman();         }         return  supermanInstance;     } }

声明一个对象不去实例化它,当程序需要实例化的时候调用静态工厂方法 getSupermanInstance(),方法中对声明的对象进行判断,如果是null的话再去实例化它,这种写法可以达到延迟加载的效果,但它是非线程安全的,若在多线程中有两个线程同时调用静态工厂方法getSupermanInstance() 就有可能重复的创建该类的实例破坏了单例的唯一性;

推荐教程:Java教程

以上就是什么是java单例模式的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 单例模式
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java怎么实现发送短信功能

相关资讯