Java中 单例(Singleton)的两种方式
2018-06-18 02:36:56来源:未知 阅读 ()
第一种(饿汉式单例模式):在声明变量时实例化
public class Singleton { //静态初始化自动实例化 private static Singleton instance = new Singleton(); //无参数构造方法 private Singleton(){}
public static Singleton getInstance() { return instance; } }
优点:在类加载初始化的时候就创建对象,调用getInstance的时候,没有同步方法,运行时性能较高。
缺点:类加载速度慢,占用太多大的资源空间。
第二种(懒汉式单例模式):把对象的创建放到方法里面去
public class Singleton {
private static Singleton instance = null;
private Singleton(){} public static synchronized Singleton getInstance() { if (instance == null){
instance = new Singleton();
} return instance; } }
优点:避免了第一种方式的缺点, 同时,可以在多线程下运行安全。
缺点:因为他使用了锁,在运行中效率慢。
总结:
单例模式的作用:
保证一个类只有单一的实例,也就是说你无法通过new来创建这个类的一个新实例。
当一个对象在程序内部只能有一个实例的时候,它可以保证我们不会重复创建,而是始终指向同一个对象。
Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问。
无参构造方法的作用是:
每一个类至少要有一个构造函数,如果你自己构建了一个带有参数的构造函数而没有再显示的写出无参的构造也是可以的,不过当你尝试通过一个无参的构造函数来构建(new的方式)时,此时编译器才会报错,因为找不到这个无参的构造函数。
也就是说当一个类你没有给他构造函数,则编译器会自动补上一个无参的,若有的话就不会,你需要显示将此无参的构造函数写出来
拓展一点:Spring集成Swagger 开发
原创直接参考:https://blog.csdn.net/BlackMambaProgrammer/article/details/72354007
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:计算机和java
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash