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

六安论坛招聘信息爱站网站长seo综合查询工具

六安论坛招聘信息,爱站网站长seo综合查询工具,品牌建设还有待升华,网站建设 资质要求系列文章目录 单例模式介绍 单例模式之静态常量饿汉式 单例模式之静态代码饿汉式 单例模式之线程不安全懒汉式 文章目录 系列文章目录前言一、单例设计模式介绍二、单例设计模式八种方式三、单例—静态常量饿汉式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.hengruixuexiao.com/news/43904.html

相关文章:

  • 设计业务网站网站数据统计工具
  • 如何做网站代理网页是怎么制作的
  • 做网站绘制蓝图的步骤优秀网站设计网站
  • 什么样建网站热搜榜排名前十
  • wordpress安全教程网络优化器下载
  • 建设工程吗seo运营经理
  • wap网站做视频直播重庆森林经典台词罐头
  • 网站推广的目标app推广一手单平台
  • 电商会学着做网站呢百度扫一扫识别图片在线
  • 用腾讯云服务器做网站广州今日新闻头条新闻
  • wordpress好还是织梦好全网seo
  • 公司做网站需准备什么材料下载百度免费版
  • 1做网站的公司站群优化公司
  • 机关网站建设建议软文推广案例500字
  • 国外设计网站h开头东莞seo建站公司
  • 哈尔滨网站搜索优化公司最新网域查询入口
  • 七牛云上市给你一个网站怎么优化
  • 偃师网站制作互联网广告投放
  • 朝阳网站建设公司南宁百度快速优化
  • 西安做企业网站手机优化大师官方免费下载
  • 幼儿园主题网络图设计美丽鹭岛搜索引擎优化seo多少钱
  • 电器网站建设目的全网网站推广
  • 网站制作框架网络搭建是干什么的
  • 哈尔滨手机建站模板网站流量统计分析工具
  • app开发和网站开发新闻发稿公司
  • 郑州做网站hnmaorui朋友圈推广文案
  • 昆明php网站建设网络营销的作用和意义
  • 电脑怎么做网站电商运营培训机构哪家好
  • 怎么给自己的网站做模版沈阳网站建设制作公司
  • wix建站教程营销推广手段有什么