需要帮助了解未引用的对象

时间:2016-07-31 00:54:50

标签: java object

我正在学习Java Oracle教程中的对象,并学习了如何引用对象字段。他们给了我两种方法,这是我理解的第一种方法。然而,第二种做法让我很困惑。这是代码:

int height = new Rectangle().height;

我理解语句本身,但是教程说这让我感到困惑。教程说"这个语句创建一个新的Rectangle对象并立即获得它的高度。实质上,该语句计算Rectangle的默认高度。 请注意,在执行此语句之后,程序不再具有对创建的Rectangle的引用,因为程序从未将引用存储在任何位置。该对象未被引用,其资源可由Java虚拟机自由回收。但是等待它没有引用变量名称" height"?那怎么没有引用呢?我理解这一点:

Rectangle rect1 = new Rectangle(1,2,3);// random arguements don't mind them

那么是什么使这行代码被引用但其他未引用的呢?

1 个答案:

答案 0 :(得分:0)

我认为你试图从字面上读它。

  

但等等并没有引用变量名称" height"?那怎么没有引用?

你可以说创建了一个匿名引用并且很好地引用了一次以获得高度。

  

请注意,在执行此语句之后,程序不再具有对创建的Rectangle的引用,因为程序从未将引用存储在任何位置。该对象未被引用,其资源可由Java虚拟机自由回收。

由于引用是匿名的,因此无法在其他任何地方使用。因此之后的声明无法引用该对象。如果是这样,为什么要把它留在内存中 - 它也可能是垃圾收集。

相关问题