mag*_*n94 6 java scope anonymous
我想知道昨天有一件事突然袭入我的脑海.
我提前为这个误导性的标题道歉,但我真的不知道如何获得这个权利.
好吧,假设我们有两个对象ObjA和ObjB,和,例如,ObjB有需要的一个方法ObjA的对象作为参数.
我们可以这样做(以java为语言):
ObjA instanceA = new ObjA();
ObjB instanceB = new ObjB();
instanceB.method(instanceA);
Run Code Online (Sandbox Code Playgroud)
要么
new ObjB().method(new ObjA());
Run Code Online (Sandbox Code Playgroud)
假设这是某个函数的主体,因此当超出范围时,对象将被销毁.
我的问题是:
我们是否通过不实例化单个对象并隐式调用第二个代码来获得性能优势?
这种可读性牺牲是否值得?
或者它是否一无所有,因为隐式创建的对象将存储在内存中并且仍然按范围死亡?
注意:我不知道我是说"隐含"还是"匿名",但我在谷歌上找不到多少.
绝对没有性能明显的区别.
但在少数情况下,您将被迫使用第一种类型.
例如:
ObjA instanceA = new ObjA();
// Do something with instanceA
instanceB.method(instanceA);
Run Code Online (Sandbox Code Playgroud)
如果你在中间没什么可做的,我可以用第二种方法来保存一行代码.