我是java /垃圾收集语言的新手,我仍然想知道有一个对象引用意味着什么(因为我被告知它不是一个指针?)所以我在思考这个问题:< / p>
我有一个父/子对象结构,其中父母将有几个包含多个孩子的列表...是否有任何低效或任何其他原因不让每个孩子的指针回到它的父母?在我以前的语言(Delphi)中,它是一个简单的指针,所以根本不是问题。在Java中有这种做法的任何考虑因素吗?
答案 0 :(得分:3)
这里不应该有任何问题。技术上是的,Java引用不是指针,但对于大多数问题,您可以类似地考虑它们。对象引用是指向Java堆中位置的整数。因此,它存储的每个附加位置都是一个额外的整数。一般而言,相当小。
您可以(通常!)信任Java在对象管理方面做正确的事情,并且不必过于担心垃圾收集或对象引用如何工作的复杂性。
答案 1 :(得分:2)
据我所知,我会说你做得很好。 Java在清理垃圾方面做得很好,我通常在子类中有一个“父”字段。
答案 2 :(得分:1)
正如之前的答案所述,通常情况下,GC可以很好地清理。您主要关心的是一旦您离开活动后持续存在的事情。这将导致您的Activity保留在内存中,因为您有一个不在其父子树中的引用。
有关此here
的更多信息答案 3 :(得分:1)
我认为如果你阅读参考类型会有所帮助 - 强,弱,幻像和软,因为它会有所帮助。另外,请阅读GC的工作原理(适用于不同代 - 年轻/幸存者空间和老一代),垃圾收集器以及您可以指定的GC参数。