当前位置: 首页 > news >正文

六安论坛招聘信息搜索引擎排名优化技术

六安论坛招聘信息,搜索引擎排名优化技术,wordpress单本小说,吉安市规划建设局网站系列文章目录 单例模式介绍 单例模式之静态常量饿汉式 单例模式之静态代码饿汉式 单例模式之线程不安全懒汉式 文章目录 系列文章目录前言一、单例设计模式介绍二、单例设计模式八种方式三、单例—静态常量饿汉式1.静态常量饿汉式介绍2.静态常量饿汉式案例3.静态常量饿汉式优缺…

系列文章目录

单例模式介绍
单例模式之静态常量饿汉式
单例模式之静态代码饿汉式
单例模式之线程不安全懒汉式


文章目录

  • 系列文章目录
  • 前言
  • 一、单例设计模式介绍
  • 二、单例设计模式八种方式
  • 三、单例—静态常量饿汉式
    • 1.静态常量饿汉式介绍
    • 2.静态常量饿汉式案例
    • 3.静态常量饿汉式优缺点
  • 四、单例—静态代码块饿汉式
    • 1.静态代码块饿汉式案例
    • 2.静态代码块饿汉式优缺点
  • 五、单例—线程不安全懒汉式
    • 1.线程不安全懒汉式案例
    • 2.线程不安全懒汉式优缺点
  • 总结


前言

大家好呀,欢迎来到柚子的博客~ 昨天可以定端午节的票了,大家准备去哪里玩呢?o( ̄▽ ̄)ブ


提示:以下是本篇文章正文内容,下面案例可供参考

一、单例设计模式介绍

(1)所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
(2)比如HibernateSessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这时就会使用到单例模式。
(3)并且该类只提供一个取得其对象实例的方法,当然这个方法是静态的。

二、单例设计模式八种方式

(1)饿汉式(静态常量)
(2)饿汉式(静态代码块)

(3)懒汉式(线程不安全)
(4)懒汉式(线程安全,同步方法)
(5)懒汉式(线程安全,同步代码块)
(6)双重检查
(7)静态内部类
(8)枚举

悄悄话:醒目的这几种是可以使用的哦,特别推荐使用后三种。

三、单例—静态常量饿汉式

1.静态常量饿汉式介绍

饿汉式如果确定这个单例一定会使用一次时,就可以使用。

2.静态常量饿汉式案例

(1)构造器私有化
(2)类的内部创建对象
(3)向外暴露一个静态的公共方法
(4)代码实现如下

public class SingletonTest01 {public static void main(String[] args) {//测试Singleton instance = Singleton.getInstance();Singleton instance2 = Singleton.getInstance();System.out.println(instance == instance2);//trueSystem,out.println("instance.hashCode=" + instance.hashCode());System.out.println("instance2.hashCode=" + instance2.hashCode());}
} 
//饿汉式(静态变量)
class Singleton {//1.构造器私有化,外部能newprivate Singleton() {}//2.本类内部创建对象实例private final static Singleton instance = new Singleton();//3.提供一个公有的静态方法,返回实例对象public static Singleton getInstance() {return instance;}
} 

3.静态常量饿汉式优缺点

(1)优点:这种写法比较简单,就是在类装载的时候就完成实例化。避免了线程同步问题。
(2)缺点:在类装载的时候就完成实例化,没有达到Lazy Loading的效果。如果从始至终从未使用过这个案例,则会造成内存的浪费。
(3)这种方式基于classloader机制避免了多线程的同步问题,不过instance在类装载时就实例化,在单例模式中大多数都是调用getInstance方法,但是导致类装载的原因有很多种,因此不能确定有其他的方式(或者其他的静态方法)导致类装载,这时候初始化instance就没有达到lazy loading的效果。
(4)结论:这种单例模式可用,可能造成内存浪费。

注:饿汉就是太饿了,不管如何,先吃上再说。(这个名字起的真是太形象了)O(∩_∩)O

四、单例—静态代码块饿汉式

1.静态代码块饿汉式案例

代码如下(示例):

public class SingletonTest02 {public static void main(String[] args) {//测试Singleton instance = Singleton.getInstance();Singleton instance2 = Singleton.getInstance();System.out.println(instance == instance2);//trueSystem.out.println("instance.hashCode=" + instance.hashCode());System.out.println("instance2.hashCode=" + instance2.hashCode());}
}
//饿汉式(静态变量)
class Singleton {//1.构造器私有化,外部能newprivate Singleton() {}//2.本类内部创建对象实例private static Singleton instance;static { //在静态代码块中,创建单例对象instance = new Singleton();}//3.提供一个公有的静态方法,返回实例对象public static Singleton getInstance() {return instance;}
}

2.静态代码块饿汉式优缺点

(1)这种方式和上面的方式“静态常量饿汉式”其实类似,只不过将类实例化的过程放在了静态代码块中,也是在类装载的时候,就执行静态代码块中的代码,初始化类的实例。优缺点和上面是一样的。
(2)结论:这种单例模式可用,但是可能造成内存浪费。

五、单例—线程不安全懒汉式

1.线程不安全懒汉式案例

代码如下(示例):

public class SingletonTest03 {public static void main(String[] args) {System.out.println("懒汉式1,线程不安全");Singleton instance = Singleton.getInstance();Singleton instance2 = Singleton.getInstance();System.out.println(instance == instance2);//true System.out.println("instance.hashCode=" + instance.hashCode());System.out.println("instance2.hashCode=" + instance2.hashCode());}
}
class Singleton {private static Singleton instance;private Singleton() {}//提供一个静态的公有方法,当使用到该方法时,才能创建instance//即懒汉式public static Singleton getInstance() {if(instance == null) {instance = new Singleton();}return instance;}
}

2.线程不安全懒汉式优缺点

(1)起到了Lazy Loading的效果,但是只能在单线程下使用。
(2)如果在多线程下,一个线程进入了if(singleton == null)判断语句块,还未来得及往下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例,所以在多线程环境下不可使用这种方式。
(3)结论:在实际开发中,不要使用这种方式。


总结

单例模式介绍;单例模式之静态常量饿汉式(可以使用);单例模式之静态代码饿汉式(可以使用);单例模式之线程不安全懒汉式(不要使用)。


╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话,欢迎点赞评论呀!
╰◟◞ ͜ ◟◞╯

http://www.bjxfkj.com.cn/article/102873.html

相关文章:

  • 网站建设费用细项seo
  • 一个网站如何挣钱seo标题优化
  • vue做响应式网站冯耀宗seo
  • 美女做美网站网络推广产品公司
  • 怎么看一个网站是不是外包做的怎么优化网站性能
  • 工厂 网站建设app优化排名
  • 自适应网站dedecms代码优化大师是什么
  • 网站做百度推广为什么没人咨询龙岗网站建设
  • wordpress标签链接优化网站seo快速
  • 自己制作视频的软件刷关键词排名seo软件软件
  • 电子商务策划书模板菏泽地网站seo
  • 深一网站建设网络广告策划流程有哪些?
  • 营销型网站开发推广网站维护主要做什么
  • 重庆网站建设公司模板seo优化
  • 网站建设公司经营微信怎么推广找客源
  • 市南区网站建设牛推网络
  • 保险公司网站谷歌商店下载官方正版
  • 如何做自己公司的网站可以免费打开网站的软件下载
  • 深色系网站seo高级优化方法
  • wordpress 删除数据库文件win优化大师怎么样
  • 怎么样做英文网站个人对网络营销的看法
  • 响应式网站是什么意思企业网站建设平台
  • 怎么做导航网站seo关键词怎么选
  • 桂林网站建设招聘专业seo站长工具全面查询网站
  • jsp网站模版市场营销推广策略
  • 我想自己做网站吗seo优化方法
  • 政府门户网站建设申请电商软文范例
  • 关于网站建设的问卷调查链接制作
  • 江苏网站开发建设百度app下载
  • 做网站需要多钱seo排名优化资源