天天看点

有关对象地址和对象关系的认识

善于把握细节,或许有新发现

对象的地址和对象的解释

  • 举例 : 类 A 对象a
  • 操作:

    A a=new A();

  • 解释:
    • a

      存储的是

      A

      类型的对象引用。
    • a

      存储在栈中,保存的是对应新创建出对象的地址(堆中的地址)。
    • new A()

      创建的对象保存在堆中 。
    • 通过

      a

      可以操作原对象,操作原对象的成员函数和成员变量,这样是修改的原数据 。
    • 如果重复上面的步骤:

      a=new A();

      此时新的地址赋予a,a存储的地址就是新的,之前的对象还在,但是无法获取到了,在c++ 中就是属于野指针,因为使用完成并没有释放内存,

      在java中有gc管理内存,所以这个没有被引用的资源会在内存不足的时候销毁掉,所以java中可以加强对对象的重用或者不用的时候及时取消引用,

      这样会尽快的释放内存,减少内存无谓的占用。