当成员变量和局部变量重名时,可以用关键字 this 来区分。 This:代表对象,当前对象 This就是所在函数所属对象的引用 简单说:哪个对象调用了this所在的函数,this就代表哪个对象。
|
Person p = new Person(“旺财”); 1、主函数进栈,变量p, 成员变量进堆内存 2、new出现,构造函数进栈,this引用当前对象,并且进行变量的初始化赋值。 3、构造函数弹栈。 变量p 与 堆内存建立引用; P.speak(); 4、调用的方法函数进栈,并建立与当前对象的引用,并且执行调用语句。 5、函数弹栈。 |
李程 发表于 2014-1-12 22:16
楼主,我感觉应该是先有的构造函数进栈,然后在堆内存中开辟空间,这个时候成员变量才进的堆内存,之后对成 ...
李程 发表于 2014-1-12 23:53
构造函数不是进栈内存,是进的共享区(非静态部分)
app297 发表于 2014-1-13 12:39
方法区? 那为什么 在比老师的视频中,讲解内存的时候,都是讲 构造函数进栈了呢? ...
呢喃的喃呢 发表于 2014-1-13 21:44
方法在调用的时候都会 压栈(push),然后执行完后立刻出栈(pop) 这个是毋庸置疑的。构造函数也是方法, ...
李程 发表于 2014-1-13 21:59
方法进的不是方法区吗?
app297 发表于 2014-1-13 22:31
看了后面的续集。 我分清楚了, 我上面说的没得错。
但是你说的方法是进方法区,这个也是对的,但是这个 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |