java是作为参数初始化还是单独初始化?
关于内存和其他方面,哪个更有效或更安全
classA A = new classA();
classB B = new classB(A);
A.dispose();
或者
classB B = new classB(new classA());
你可以在下面搜索框中键入要查询的问题!
关于内存和其他方面,哪个更有效或更安全
classA A = new classA();
classB B = new classB(A);
A.dispose();
或者
classB B = new classB(new classA());
# 1 楼答案
没有区别
示例:
考虑下面的代码。
如果您看到下面的编译代码,您会发现java编译器包含两个
invokespecial
和两个new
指令,因此每次创建类A
的单独对象并将其存储在堆中时,该对象的引用将作为参数传递给类B
的构造函数编译代码:
你可以看到只是执行顺序改变了
旁注:
invokespecial
JVM指令用于调用 上课李>new
用于创建类的新实例李><init>
是编译器提供的构造函数的特殊名称,它不是有效的java标识符李>