我正在查看一些 lwjgl 的教程,并想到我没有将类实例化在变量中,而是将其实例化并直接调用该方法而不保存对象。
我想知道当您以后不必重用该对象时这样做是否很好,或者最好始终保留该对象。
我的意思是:
(new Lesson02()).run(fullscreen);
取而代之的是:
Lesson02 l2 = new Lesson02();
l2.run(fullscreen);
谢谢。
如果您以后不打算使用该对象,则实际上没有任何区别。所以选项1很好。如果您遵循选项 2 并最终不在l2
代码中使用,那么无论如何它都会被垃圾收集。
只要您以后不必使用该对象,那么第一个选项就可以了。
我通常使用第一个选项,除非构造函数和函数有很多参数,然后我更喜欢拆分它以提高可读性。一般规则:使用任何更易于理解和可读的东西。
由于 Java 是一种垃圾收集语言,因此第一种方式被完全接受。与第二个相比,我更喜欢它的紧凑性和整洁性。
这两个选项实际上是相同的。
如果编译器不擅长优化,那么第一个可能会无限快,因为它更有可能被 GC 快速回收。
前一个选项无论如何都会创建一个临时引用变量;命名或未命名,你有一个局部变量引用堆上的一个对象。如果它不再使用,垃圾收集器将为您清理。
这两个选项仅在可读性上有所不同,因此您可以从该角度选择您喜欢的那个。
第一种方式最好接受,因为 Java 可以为您分配内存。