getinstance方法(java replace函数)

一般在单例模式下使用.getInstance()创建对象;但并不是所有有私有构造方法,对外通过getInstance方法提供实例的情况就是单例模式。注:单例模式:一个类有且只有一个实例。1,一个私有的构造器2,一个私有的该类类型的变量3,必须有一个共有的返回类型为该类类型的方法,用来返回这个唯一的变量eg:publicclassSingleton{

大家好,又见面了,我是你们的朋友全栈君。一般在单例模式下使用.getInstance()创建对象;但并不是所有有私有构造方法,对外通过getInstance方法提供

实例的情况就是单例模式。

注:单例模式:一个类有且只有一个实例。

1,一个私有的构造器

2,一个私有的该类类型的变量

3,必须有一个共有的返回类型为该类类型的方法,用来返回这个唯一的变量

eg:

public class Singleton{

    private Singleton(){}    //private 只能在自己内部供自己去访问

    private static Singleton instance=new Singleton();//在自己内部定义自己的一个实例

    public static Singleton getInstance(){         //此静态方法供外部直接访问


return instance;

    }

}

判断Singelton一个类是否是单例模式:

class Test{

    public static void main(String args[]){

Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
if(s1==s2)
System.out.println(“此类是单例模式”);
else
System.out.println(“此类不是单例模式”);
    }
}getinstance方法(java replace函数)

GetInstance与new区别:

new的使用:如Object object = new Object(),这时候,就必须要知道有第二个public的Object构造方法的

存在。

GetInstance的使用:在主函数开始时调用,返回一个实例化对象,此对象是static的,在内存中保留着它

的引用,即内存中有一块区域专门用来存放静态方法和变量,可以直接使用,调用多次返回同一个对象。

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

(2)new 一定要生成一个新对象,分配内存;getInstance() 则不一定要再次创建,它可以把一个已存在的

引用给你使用,这在效能上优于new;

(3) new创建后只能当次使用,而getInstance()可以跨栈区域使用,或者远程跨区域使用。所以getInstance()

通常是创建static静态实例方法的。

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

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

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


相关推荐

  • 数据结构与算法经典书籍——大话数据结构(带配套源码)

    数据结构与算法经典书籍——大话数据结构(带配套源码)书本下载链接:链接:https://pan.baidu.com/s/1jgVnbBZoLgA8pshpxbapOQ密码:577l配套程序链接:https://pan.baidu.com/s/1HYka42KngWT2el7T0HO7LA密码:i6hw虽说数据结构以美国人MarkAllenWeiss写的《数据结构与算法分析——C语言实现》最好,但是我发现他的书让人很不容易理解,可能我们…

    2022年6月3日
    55
  • Spring 中拦截器(Interceptor)与过滤器(Filter)的区别

    Spring 中拦截器(Interceptor)与过滤器(Filter)的区别Spring 中拦截器(Interceptor)与过滤器(Filter)的区别

    2022年4月23日
    54
  • mysql官网下载详细教程图文

    mysql官网下载详细教程图文2019年的mysql官网下载教程■打开地址https://www.mysql.com/downloads/点击打开■进入首页点击MySQLCommunity(GPL)Downloads»■再点击MySQLCommunityServer这里选择的是linux版本。如果是Windows或者其他版本请另请选择即可■点击下载后…

    2022年5月1日
    55
  • Python学习(十一)Python标识符命名规范

    Python学习(十一)Python标识符命名规范简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。Python中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:1.标识符是由字符(A~Z和a~z)、下划线和数字组成,但第一个字符不能是数字。2.标识符不能和Python中的保留字相同。有关保留字,后续章节会详细介绍。3.Python中的标…

    2025年10月15日
    3
  • ForkJoin看这篇就够了![通俗易懂]

    ForkJoin看这篇就够了![通俗易懂]大家好,我是小黑,一个在互联网苟且偷生的农民工。在JDK1.7中引入了一种新的Fork/Join线程池,它可以将一个大的任务拆分成多个小的任务并行执行并汇总执行结果。Fork/Join采用的是分而治之的基本思想,分而治之就是将一个复杂的任务,按照规定的阈值划分成多个简单的小任务,然后将这些小任务的结果再进行汇总返回,得到最终的任务。分治法分治法是计算机领域常用的算法中的其中一个,主要思想就是将将一个规模为N的问题,分解成K个规模较小的子问题,这些子问题相互独立且与原问题性质相同;求解出子问题的解

    2022年9月19日
    3
  • BGP实验(2)

    BGP实验(2)

    2021年4月12日
    149

发表回复

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

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