美文网首页
Java/kotlin - 单例模式

Java/kotlin - 单例模式

作者: 我们都很努力着 | 来源:发表于2019-03-31 12:38 被阅读0次
    前言:写给编程已久却忘记概念的程序员
    
    正题开始之前,首先我们要明白几个概念,什么是实例,什么是对象,什么是引用。先想想 在看下面的答案。
    

    new 一个对象是实例,
    对,是实例,你说的没错。可以把这个new出来的对象叫做实例,说白了就是这个new出来的“东西”,叫它对象也可以,叫它实例也可以,对象和实例在这个角度上来讲是等价的。
    这样:
    Java中使用 new关键字 加上 构造方法,来创建一个对象,下面是一个名为Cat的类,
    public class Cat {
    public Cat() {
    System.out.println("这是构造方法");
    }
    }
    使用new + 构造方法 来创建一个对象,那么也就是
    Cat c = new Cat();
    前半部分,Cat c 的意思是,在内存中分配一个变量,名字叫c,这个变量是Cat类型的,它的值是什么?
    一会儿在说;
    后半部分,new Cat(); 这就是new关键字和构造方法来创建一个对象,Cat()是构造方法的名字没错吧?想造出一个对象来,就这么写,语法规定的,没有为什么;
    new Cat(); 说明 new这个Cat类的一个对象,程序运行的时候,会调用构造方法Cat(),等这个构造方法执行完了,这个Cat类型的对象也就造出来了,真正的出现在内存当中了;
    使用new关键字造出来的对象,被分配在内存的堆区(heap),而且等这个对象真正出来之后,还会做一件重要的事情:
    我们这个对象是被分配在内存中的,那么内存地方大了,这个对象在哪里呢?怎么找到它呢?new关键字创建出一个对象之后,会把这个对象在内存中的地址返回,通过这个地址就可以找到这个对象,那么我们上面的写法,
    Cat c = new Cat();
    意思就是说,把这个对象在内存中的地址 赋值 给变量c,这就是Java中引用概念,c就叫做引用,或者叫引用变量,或者直接叫变量,没问题,都是它;
    c的值就是一个内存地址,或者叫引用地址,通过这个地址,就可以准确的找到我们刚才创建出来的对象,以后我们要使用这个对象做一些事情,调用此对象的方法什么的,都用过这个引用,ok?


    注意,我再说一遍,好多人都搞不清楚,这个c到底是对象还是引用,好多人说c就是Cat类的一个实例,这是非常错误的,c就是引用,不是对象!我们new出来的这个东西,真正在内存中的这个东西叫做对象,叫做实例

    相关文章

      网友评论

          本文标题:Java/kotlin - 单例模式

          本文链接:https://www.haomeiwen.com/subject/auvdsxtx.html