Java ';新';关键字和构造函数工作
好的,我正在学习我的第一个java认证,我不能完全理解当创建一个对象时在引擎盖下面发生了什么,一些解释说iv'e read声明构造函数返回对一个对象的引用,这对我来说是一个混乱的来源,因为据我所知,这是由new关键字完成的。我的问题是:Java ';新';关键字和构造函数工作,java,Java,好的,我正在学习我的第一个java认证,我不能完全理解当创建一个对象时在引擎盖下面发生了什么,一些解释说iv'e read声明构造函数返回对一个对象的引用,这对我来说是一个混乱的来源,因为据我所知,这是由new关键字完成的。我的问题是: 对对象的引用实际上来自哪里,“new”关键字还是构造函数 当使用“new”关键字创建对象时,它是否隐式地将该对象传递给构造函数 当使用“new”关键字创建对象时,在传递给构造函数(例如Person me=new Person())之前,它是否只是一个java对象
new构造函数(参数)
的整个表达式被视为一个实例创建表达式,作为单独的new
关键字和构造函数调用没有意义
JLS描述了实例的实际创建,包括三个步骤:
新建时不适用)
this
提供class Test{
public static void main(String args[]){
Integer s = new Integer(2);
}
}
结果是:
public static void main(java.lang.String[]);
Code:
0: new #2 // class java/lang/Integer
3: dup
4: iconst_2
5: invokespecial #3 // Method java/lang/Integer."<init>":(I)V
8: astore_1
9: return
然后推送我传递给构造函数的常量值:
2
our new Integer
our new Integer
invokespecial
发生,它传递最上面的两个堆栈元素——新实例和构造函数的参数。最后一个小闭包lol,我很想怀疑我所知道的,谢谢你的消息answer@Kakarot没问题,如果有帮助,请随意投票,如果没有帮助,请进一步提问。
2
our new Integer
our new Integer