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

宁波网站建设托管唐山seo推广公司

宁波网站建设托管,唐山seo推广公司,阳江招聘网前程无忧,秦皇岛建设银行网点分布单例模式是一种创建对象的设计模式,它保证一个类只有一个实例,并提供一个全局访问点。由于单例模式只允许存在一个实例,因此它可以节省系统资源并提高程序的性能。在许多情况下,单例模式在应用程序中都是非常有用的,例…

单例模式是一种创建对象的设计模式,它保证一个类只有一个实例,并提供一个全局访问点。由于单例模式只允许存在一个实例,因此它可以节省系统资源并提高程序的性能。在许多情况下,单例模式在应用程序中都是非常有用的,例如数据库连接、日志记录、配置文件等。

单例模式分为饿汉式和懒汉式

1.饿汉式

        步骤:

                (1)构造器私有化,防止其他类中直接new该类的对象

                (2)在该类的内部创建一个static对象

                (3)向外暴露一个静态的公共方法,返回的是对象

代码:

public class Hungry {public static void main(String[] args) {//new A();//不能直接new,因为构造器被私有化了A a1 = A.getInstance();A a2 = A.getInstance();System.out.println(a1 == a2);//true,说明a1和a2是同一个对象}
}class A{private A() {//构造器私有化,防止其他类中直接new该类的对象}private static A a = new A();//因为静态方法getInstance中只能调用静态成员,因此这里也要staticpublic static A getInstance(){//这边这能是static,因为构造器被私有化了,不能通过该类的对象来访问此方法了,就只能通过类来直接访问了,故必须为static的return a;}
}

饿汉式之所以被称为“饿汉式”,主要是因为这种方式会在程序启动时就创建对象实例,无论是否需要它,就像是“饿汉一样”,比较着急。在程序运行期间,无论这个单例对象是否会被使用,都会提前创建好,因此会占用一定的系统资源。

这种方式的优点是实现简单、线程安全,不需要进行多线程同步处理,能够保证对象实例的唯一性。缺点是可能会浪费系统资源,如果该对象实例很少被使用,会对系统性能产生一定的影响。

2.懒汉式

        步骤:

                (1)构造器私有化,防止其他类中直接new该类的对象

                (2)在该类的内部定义一个static属性对象,此时并不创建对象

                (3)向外暴露一个静态的公共方法,返回的是对象,但只有当用户首次调用该方法时才会创建一个对象,往后的调用是返回之前的对象

代码:

public class Lazy {public static void main(String[] args) {B b1 = B.getInstance();B b2 = B.getInstance();System.out.println(b1 == b2);//true,说明b1和b2是同一个对象}
}class B {private B() {构造器私有化,防止其他类中直接new该类的对象}private static B b;public static B getInstance() {if (b == null) {//如果为null就创建一个对象b = new B();}return b;}
}

懒汉式之所以被称为“懒汉式”,主要是因为在第一次使用该单例对象时才会进行实例化,比较“慢”,就像是“懒汉一样”,不太着急

这种方式的优点是在程序启动时不会占用系统资源,只有在需要使用时才会进行实例化,能够延迟对象的创建时间,提高系统性能。缺点是需要进行多线程同步处理,否则会出现线程安全问题

小结:饿汉式于懒汉式的区别与联系:

区别:

  1. 初始化时机:饿汉式在类加载时就创建实例对象,而懒汉式在第一次使用时才创建实例对象。
  2. 线程安全性:饿汉式是线程安全的,因为实例对象在类加载时就创建,不存在多线程竞争的情况。懒汉式在多线程环境下需要考虑线程安全性,可以使用synchronized关键字或者双重检查锁定等方式来保证线程安全。
  3. 性能:饿汉式在类加载时就创建实例对象,因此获取实例对象的速度较快。懒汉式在第一次使用时才创建实例对象,可能会有一定的延迟。

联系:

  1. 都是单例设计模式的实现方式,用于保证一个类只有一个实例对象。
  2. 都需要私有化构造方法,防止外部直接创建实例对象。
  3. 都使用静态方法来获取实例对象。

选择使用饿汉式还是懒汉式取决于具体的需求和场景。如果对性能要求较高,且实例对象的创建和初始化过程较为简单,可以选择饿汉式。如果对性能要求不高,且实例对象的创建和初始化过程较为复杂,可以选择懒汉式。

     

                       

http://www.ritt.cn/news/26796.html

相关文章:

  • WordPress滑动验证码插件求职seo服务
  • 查网站域名备案查询短视频运营方案策划书
  • 自动城市定位装修网站建设网络销售平台排名
  • 做网站前台模型要做什么呢创建网页
  • 邗江区疫情最新消息西安百度seo推广
  • 做网站合同最新军事新闻 今日 最新消息
  • 南京网站制作步骤百度热搜榜排名
  • 广东和深圳的关系兰州seo网站建设
  • 溧阳网站定制百度号码认证申诉平台
  • 广州房地产网站建设方案成人就业技术培训机构
  • 链接优化方法杭州搜索引擎优化公司
  • html5个人博客网站模板微信上怎么做广告推广
  • 网站排名软件 利搜传统营销与网络营销的整合方法
  • 商城网站建设系统上海网站快速排名优化
  • 如何用手机制作游戏seo竞价培训
  • 怎样做网站视频网站如何做优化推广
  • 泉州专门制作网站佛山网站建设公司哪家好
  • 寮步网站仿做东莞seo关键词排名优化排名
  • 国内flex做的网站新产品宣传推广策划方案
  • 做孵化的网站免费刷seo
  • it外包公司前景如何网站关键词优化排名软件系统
  • 济南网站建设专业公司seo系统源码
  • 企业网站排名靠前电商培训机构需要什么资质
  • 适合大网站做安全性测试的工具cba排名
  • 北京网站制作公司电话关于普通话的手抄报
  • 网络公司的手机网站杭州网站seo推广
  • 做网站公司宁波上市竞价推广托管开户
  • 自己做的网站怎么让别人看见百度推广客服中心
  • 江苏建设管理中心网站怎样做推广
  • 电子商务网站建设的工具泉州seo托管