我想知道昨天跳入脑海的一件事。
我为误导性标题提前道歉,但我真的不知道如何赋予这个权利。
那么,假设我们是两个对象ObjA
和ObjB
,并且,例如,ObjB
有一个方法将ObjA
对象作为参数。走出去的范围时匿名变量(?)的优点?
ObjA instanceA = new ObjA();
ObjB instanceB = new ObjB();
instanceB.method(instanceA);
或
new ObjB().method(new ObjA());
假设这是某种功能的机构,所以对象将被销毁:
我们可以做到这一点(以Java作为语言) 。
我的问题是:
我们是否通过不实例化单数对象并隐式调用第二个代码来获得性能优势?
这种可读性牺牲有价值吗?
或者这一切都没有,因为隐式创建的对象将被存储在内存中,并随着范围而死?
注意:我不知道我是否用“隐式”或“匿名”来说,但我在Google上没有发现太多内容。
在Java中,这不应该performancewise关系。您可以查看两个版本生成的字节码。但作为一般规则:使用更具可读性的内容。 – Axel
你仍然在实例化相同数量的对象。即使您不指定变量,带有“new”字的位也是实例。 – khelwood
没有任何优势。即使有,它会是很小的,你会浪费你的时间专注于这样的事情。 – Kayaman