代码讲解java的单例模式
Java  /  管理员 发布于 9年前   466

单例模式可以说是最常用的设计模式之一,其主要作用就是保证一个类只有一个实例,并且提供一个访问它的全局访问点,严格的控制用户的访问方式。
单例模式又分为懒汉模式和饿汉模式,首先说一下饿汉模式:
饿汉模式
饿汉模式有点饥不择食的意思,就像一个人饿了很久,所以只要有人给东西他就吃而不考虑东西好不好吃,自己能不能吃得了。代码如下:
public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; }}意思大家都懂,就是一种静态初始化的方法,只要类一加载就实例化对象,优点就是线程安全,缺点就是提前占用系统资源。这时候就出现了懒汉模式:
(推荐视频:java视频教程)
懒汉模式
对比饿汉模式的饥不择食,懒汉模式的意思就是饭送到嘴边才吃,否则再饿也不会动嘴。代码如下:
public class Singleton{ private static Singleton instance; private Singleton(){} public static Singleton getInstance() { if (instance == null) {instance = new Singleton(); } return instance; }}然而在多线程同时调用getInstance()方法时,会有可能创建多个实例,所以这一版线程是不安全的,于是又有了下面这一版:
public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton .class) { if (instance == null) { instance = new Singleton (); } } } return instance; }}用双重锁定的方法来保证当instance == null时,多个线程调用getInstance()方法时,都可以通过第一重判断的问题。
一般情况下饿汉的单例模式就可以满足大部分的需求了,关于单例模式基本情况就是这样了。
本文来自,java教程栏目,欢迎学习!
以上就是代码讲解java的单例模式的详细内容,更多请关注其它相关文章!
test1 在
opencode + Oh-my-openagent,我的第一个免费的ai编程智能体管家:Sisyphus中评论 test..122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..Zita 在
Google AI Studio升级全栈 vibe coding体验,可直接构建带登录和数据库的应用中评论 111222..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号
