getinstance用法作用(rept函数怎么用)

阅读数:275先举例说明:下面是一个例子,为什么要把这个类实例化?有什么好处?//实例化publicstaticDBConnectinstance;publicstaticDBConnectgetInstance(){if(instance==null){instance=newDBconnect();}returninstance;…

大家好,又见面了,我是你们的朋友全栈君。

  1. 先举例说明:

  2. 下面是一个例子,为什么要把这个类实例化?有什么好处?

  3. //实例化

  4. public
    static DBConnect instance;

  5. public static DBConnect getInstance(){

  6. if(instance ==
    null){

  7. instance =
    new DBconnect();

  8. }

  9. return instance;

  10. }

  11. 总的来说:这是单例模式,一般用于比较大,复杂的对象,只初始化一次,应该还有一个
    private的构造函数,使得不能用
    new来实例化对象,只能调用getInstance方法来得到对象,而getInstance保证了每次调用都返回相同的对象。

  12. 详细解释一下:对象的实例化方法,也是比较多的,最常用的方法是直接使用
    new,而这是最普通的,如果要考虑到其它的需要,如单实例模式,层次间调用等等。

  13. *直接使用
    new就不能实现好的设计,这时候需要使用间接使用
    new,即getInstance方法。这是一个设计方式的代表,而不仅仅指代一个方法名。

  14. 1.
    new的使用:

  15. 如Object _object =
    new Object(),这时候,就必须要知道有第二个Object的存在,而第二个Object也常常是在当前的应用程序域中的,

  16. 可以被直接调用的

  17. 2. GetInstance的使用:

  18. * 在主函数开始时调用,返回一个实例化对象,此对象是
    static的,在内存中保留着它的引用,即内存中有一块区域专门用来存放静态方法和变量,

  19. * 可以直接使用,调用多次返回同一个对象。

  20. 3.两者区别对照:

  21. * 大部分类(非抽象类/接口/屏蔽了constructor的类)都可以用
    new
    new就是通过生产一个新的实例对象,或者在栈上声明一个对象 ,每部分的调用

  22. * 用的都是一个新的对象。

  23. * getInstance是少部分类才有的一个方法,各自的实现也不同。

  24. * getInstance在单例模式(保证一个类仅有一个实例,并提供一个访问它的全局访问点)的类中常见,用来生成唯一的实例,getInstance往往是
    static的。

  25. *

  26. * (
    1) 对象使用之前通过getInstance得到而不需要自己定义,用完之后不需要delete;

  27. * (
    2)
    new 一定要生成一个新对象,分配内存;getInstance() 则不一定要再次创建,它可以把一个已存在的引用给你使用,这在效能上优于
    new

  28. * (
    3)
    new创建后只能当次使用,而getInstance()可以跨栈区域使用,或者远程跨区域使用。所以getInstance()通常是创建
    static静态实例方法的。

  29. *

  30. * 总结:

  31. * getInstance这个方法在单例模式用的甚多,为了避免对内存造成浪费,直到需要实例化该类的时候才将其实例化,所以用getInstance来获取该对象,

  32. * 至于其他时候,也就是为了简便而已,为了不让程序在实例化对象的时候,不用每次都用
    new关键字,索性提供一个instance方法,不必一执行这个类就

  33. * 初始化,这样做到不浪费系统资源!单例模式 可以防止 数据的冲突,节省内存空间

  34. 以上是我对getInstance()方法的理解,希望能够帮到你!谢谢你的阅读!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129672.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Win10安装Tomcat服务器与配置环境变量[通俗易懂]

    Win10安装Tomcat服务器与配置环境变量[通俗易懂]文章目录下载安装JDK下载Tomcat压缩包解压Tomcat压缩包Tomcat目录结构启动Tomcat环境变量配置Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。本文主要讲述Windows环境Tomcat服务器安装与环境变量配置下载安装JDK要想安装Tomcat服务…

    2022年6月3日
    28
  • 单片机开发系列(一)之Keil 5 安装使用教程「建议收藏」

    单片机开发系列(一)之Keil 5 安装使用教程「建议收藏」、Keil安装教程   -Keil5安装包 链接:https://pan.baidu.com/s/1QitX09pqh6uZVdjj48Dllw密码:69yx   -下载链接中的安装包,进行安装,在安装完成后,开始以下的激活步骤   -运行安装的Keil5点击File->liselicensemanagement,将图片中的CID进行复制 …

    2022年5月23日
    45
  • C# FileSystemWatcher用法详解[通俗易懂]

    C# FileSystemWatcher用法详解[通俗易懂]FileSystemWatcher控件主要功能:监控指定文件或目录的文件的创建、删除、改动、重命名等活动。可以动态地定义需要监控的文件类型及文件属性改动的类型。1.常用的几个基本属性:(1)Path:设置要监视的目录的路径。(2)IncludeSubdirectories:设置是否级联监视指定路径中的子目录。(3)Filter:设置筛选字符串,用于确定在目录中监

    2022年6月16日
    28
  • 现有p2p协议简介怎么写_P2P协议穿透

    现有p2p协议简介怎么写_P2P协议穿透原文地址:http://wezly.iteye.com/blog/611630 (一) 常用p2p协议  一、napster:世界上第一个大型的p2p应用网络;中央集中式,倒闭了。  napster,这是当时很火的一种共享服务,主要用于查找mp3,它有一个服务器用于存储mp3文件的链接位置并提供检索,而真正的mp3文件则存放在千千万万的个人电脑上,搜索到的文件通过p2p方式

    2022年10月20日
    0
  • 根据美光内存颗粒上的编码查询对应型号

    根据美光内存颗粒上的编码查询对应型号根据美光内存颗粒上的编码查询对应型号今天遇到需要查看美光内存颗粒容量的问题。美光FBGA封装的DDR颗粒上只有两行,每行5位的编码。根据美光官网上的说明,由于FBGA封装上空间的限制,不能印完整的型号信息,只能用编码表示,其中第二行的5位编码可以用于查询对应的型号信息。官方提供了FBGA&ComponentMarkingDecoder工具来查询FBGAcode对应的型号,进而就可以查找到了

    2022年6月22日
    31
  • macports安装卡住_MacPorts下载

    macports安装卡住_MacPorts下载MacPorts类似与apt-get以及yum等软件包管理工具,可以方便的进行安装与卸载软件的功能,同时可以自动安装软件包的依赖,非常方便,同类的还有brew等工具。1.下载及安装下载MacPorts安装包或源码,我比较喜欢源码安装,使用apk安装较慢,而且对进度的把握也不够明显,总感觉程序死掉了。下载以及安装都可以参照 http://www.macports.org/install

    2022年9月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号