------- android培训、java培训、期待与您交流! ----------
1.设计模式:
- 在建筑领域有设计模式,为了提高建筑速度,总结一些规律,形成模式。
- 软件当中解决问题行之有效的方法,融合优化,成为设计模式。
- 一共23种通用设计模式。
- 设计模式不是代码而是纯偏思想
- 多个设计模式融合成为框架。
2.单例设计模式
- 作用:解决一个类在内存中只存在一个对象。
- 方法
- 为了避免其他程序过多创建改了对象,先禁止其他程序建立该类对象。
- 还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。
- 为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
-
提供一个私有静态方法可以获取到该对象。
- 单例不需要set,只有get方法。
- 对于事物该怎么描述,还怎么描述,当需要将该事物的对象在内存中唯一时,将以上三步加上即可。
- 对应代码:
- 饿汉式
- class Single
- {
- private Single(){}//私有的构造方法
- private static single s=new single();//构造一个私有的本类对象,因为对象私有,要建立对象必须使用静态的getInstance方法,这时 该对象也需要static
- public static single getInstance();//一个外部可以获得该类对象的方法,首先必须public外部才能访问。再次因为不能创建该类对象,必须静态该方法才能使外部使用类名.方法来调用该对象。
- {
- }
- }
-
- class
- {
- public static void main(String [] args)
- Single ss=Single.getInstance();
- }
- 方法区中的静态对象引用指向了堆内存中的对象实体。
- 重复调用getInstance方法,都是使用了方法区中静态对象引用,而该引用指向的对象只有一个。不能重新建立,这样就保证了对象的唯一性。
- 单例设计模式二
- 懒汉式
- class Single
- private static single s=null;
- private Single(){}
- public static Single getInstance()
- {
- }
- class
- {
- public static void main(String [] args)
- Single ss=Single.getInstance();
- }
- 懒汉式和饿汉式的区别:
- 饿汉式,Single类已经内存,就创建好了对象。
- 懒汉式是延迟加载,Single对象指向空,调用getInstance方法时,才建立对象。
- 开发时使用的是饿汉式,因为安全,简单。
- 懒汉就是一开始太懒不建立对象。饿汉式先建立对象再说。
- 懒汉式在多线程同时调用方法时,线程间快速切换,会在产生对象前产生异常。
- 面试题:如何解决懒汉式线程同步出错的问题
分享到:
相关推荐
人工智能-深度学习-tensorflow
人工智能毕业设计&课程设计
基于ssm的中小型企业财务管理录系统.zip
这个资源是一个基于Spring Boot和MySQL的洗衣店订单管理系统的完整源码。它包括了所有的源代码文件,以及一个详细的文档,可以帮助你理解和运行这个系统。这个系统的主要功能包括:用户注册和登录,下单,查看订单,修改订单,删除订单等。用户可以在系统中选择洗衣服务,然后提交订单。系统会自动计算订单的总价,并将其显示在用户的订单列表中。用户还可以查看自己的历史订单,以及每个订单的详细信息。此外,系统还包括了一个管理员模块。管理员可以查看所有的订单,以及对订单进行管理。他们可以修改订单的状态,例如将订单标记为已完成,或者取消订单。这个系统使用了Spring Boot框架,这是一个非常流行的Java开发框架,它可以帮助你快速地开发和部署应用程序。同时,系统也使用了MySQL数据库,这是一个广泛使用的关系型数据库,它可以存储大量的数据,并提供高效的查询功能。总的来说,这个资源是一个非常完整的洗衣店订单管理系统的源码,它可以帮助你理解如何使用Spring Boot和MySQL来开发一个实际的应用程序。无论你是正在学习Java编程,还是已经有一定的开发经验,都可以从这个资源中学到很多有用的知识和技能。
W9825G6KH-6I SDRAM,256Mb(32MB,16Mbx16),3.3v 动态随机存取存储器
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
人工智能毕业设计&课程设计
asp代码ASP基于web的学校新闻发布系统开发(论文+源代码+开题报告+文献综述+外文翻译)本资源系百度网盘分享地址
三菱PLC例程源码PLC 气压程式本资源系百度网盘分享地址
三菱PLC例程源码PLC通过RS485 对FR系列变频的控制本资源系百度网盘分享地址
基于ssm的学生档案管理系统.zip
这是一个基于Java语言开发的elfinder 2.x版本Web文件管理器后端设计,包含63个文件,其中主要文件类型包括49个Java源文件、3个XML文件、2个PNG图片文件、2个Markdown文档、1个gitattributes文件、1个gitignore文件、1个LICENSE文件、1个Properties文件、1个types文件和1个未知类型的文件。该项目提供了丰富的文件管理功能,包括自定义文件视图和自定义文件操作,为用户提供了高效、便捷的文件管理体验。
使用DS Client在PPT中动态展示分子三维结构
基于ssm+vue的汽车站车辆运管系统.zip
算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
DS在生物药物领域的解决方案
三菱PLC例程源码SBR废水处理本资源系百度网盘分享地址
人工智能毕业设计&课程设计
人工智能-深度学习-tensorflow
基于ssm电子病历系统.zip