2

我正在查看一些 lwjgl 的教程,并想到我没有将类实例化在变量中,而是将其实例化并直接调用该方法而不保存对象。

我想知道当您以后不必重用该对象时这样做是否很好,或者最好始终保留该对象。

我的意思是:

(new Lesson02()).run(fullscreen);

取而代之的是:

Lesson02 l2 = new Lesson02();
l2.run(fullscreen);

谢谢。

4

7 回答 7

3

如果您以后不打算使用该对象,则实际上没有任何区别。所以选项1很好。如果您遵循选项 2 并最终不在l2代码中使用,那么无论如何它都会被垃圾收集。

于 2011-05-28T20:46:34.723 回答
2

只要您以后不必使用该对象,那么第一个选项就可以了。

于 2011-05-28T20:43:53.813 回答
2

我通常使用第一个选项,除非构造函数和函数有很多参数,然后我更喜欢拆分它以提高可读性。一般规则:使用任何更易于理解和可读的东西。

于 2011-05-28T20:45:08.960 回答
2

由于 Java 是一种垃圾收集语言,因此第一种方式被完全接受。与第二个相比,我更喜欢它的紧凑性和整洁性。

于 2011-05-28T20:46:43.160 回答
2

这两个选项实际上是相同的。

如果编译器不擅长优化,那么第一个可能会无限快,因为它更有可能被 GC 快速回收。

于 2011-05-28T20:48:05.330 回答
2

前一个选项无论如何都会创建一个临时引用变量;命名或未命名,你有一个局部变量引用堆上的一个对象。如果它不再使用,垃圾收集器将为您清理。

这两个选项仅在可读性上有所不同,因此您可以从该角度选择您喜欢的那个。

于 2011-05-28T20:49:48.777 回答
1

第一种方式最好接受,因为 Java 可以为您分配内存。

于 2011-05-28T21:50:10.647 回答