【问题标题】:Why is the advantage in a class variable referencing to an object? instead of storing the object itself为什么类变量引用对象的优势?而不是存储对象本身
【发布时间】:2012-07-08 06:22:53
【问题描述】:

我想知道类变量存储对对象的引用而不是将对象直接存储在其内存位置有什么优势?

这与内存问题有关还是安全问题。

我试着环顾四周,我找不到这个问题。

谢谢。

【问题讨论】:

    标签: java object reference class-variables


    【解决方案1】:

    Java 将 Object 存储在堆内存中,但是从代码中我们需要使用一些句柄来访问该 Object,引用也是如此

    同时在没有活动引用对象的情况下进行 GC 时,不再需要并且将准备好 GC

    【讨论】:

    • 什么是 GCing?如果有的话,我可能会用其他名字知道它。谢谢。
    【解决方案2】:

    更多的是关于内存,因为在将对象复制或传递给函数时,您无需创建/复制只需复制引用的对象。

    例如:

    Class1 a = new Class1();
    Class1 b = a;
    

    如果您不存储引用,那么在这种情况下,您将需要为 b 创建另一个对象,从而导致重复。

    其次,

    public void(Class1 obj){
      //Some operation to Object
    }
    

    如果你传递整个 Object 而不是引用,你将再次需要内存来保存复制的 Object。

    【讨论】:

    • 是的,这绝对是有道理的。那会浪费大量内存。
    【解决方案3】:

    如果您没有引用,就不可能实现大多数数据结构。考虑双向链表,或者节点包含父链接的树。

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 2020-10-10
      • 2022-06-13
      • 1970-01-01
      • 2011-06-14
      • 2015-08-30
      • 2018-09-21
      • 1970-01-01
      • 2014-08-03
      相关资源
      最近更新 更多