黑马程序员技术交流社区

标题: 空参构造问题 [打印本页]

作者: preludeOo_L    时间: 2017-2-26 12:49
标题: 空参构造问题
空参构造在new的时候是不是要进方法栈,那他什么时候弹栈呢?弹栈后new出来的对象是不是就消失了?

作者: yeluoxingye    时间: 2017-2-26 12:55
new对象的时候,构造方法进栈,初始化成员变量,初始化成员变量之后就会弹栈

没有引用指向对象的时候,对象就成了垃圾,垃圾回收器会不定时清理
作者: tzslk    时间: 2017-2-27 00:53
如果说你写的代码是:Demo d=new Demo(); 实例初始化的时候刚开始类加载进内存,然后main方法压栈,然后开始执行刚才我写的那句代码,现在栈内创建一个变量d,然后在队内存中创建一个对象,然后Demo(){};默认构造方法压栈,他有个this引用,持有这个对象的地址(也就是不会给其他对象初始化),会执行初始化动作(中间省略继承调用父类构造函数及自身构造代码块初始化),初始化结束后,构造函数弹栈,然后把对象的内存地址赋值给引用d,完成对象的创建。
作者: tzslk    时间: 2017-2-27 00:55
如果说仅仅是new Demo();同样构造函数压栈,初始化结束后弹栈,然后对象存在在堆内存中,没有引用指向他,java垃圾回收机制不定期回清理。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2