黑马程序员技术交流社区

标题: 没有实例化一个类的时候,该类的成员变量放在哪? [打印本页]

作者: 乔青山    时间: 2014-2-25 18:42
标题: 没有实例化一个类的时候,该类的成员变量放在哪?
本帖最后由 乔青山 于 2014-2-26 09:20 编辑

以前看某位老师的视频的时候,那位老师讲到:方法区中存放这类的信息:包括成员变量和方法。
new的时候类似于复制该类,把这个类的模板放到堆中,然后由这个new出来的对象引用。


但是刚看到毕老师的视频,视频里讲到:
方法区中只存放方法,成员变量是随着对象的实例化而存放在对象中,就是堆中。
那我想问一下,在没有实例化的时候,这些成员变量放在哪呢?
另外,对象实例化的时候,只把成员变量存到对象,方法并不存放么?
那栈中的对象引用堆中存放的对象信息,而通过对象调用方法的时候怎么调用?对象引用的信息只有成员变量,怎么能引用到方法呢?

讲的可能有点乱,不知道各位大大能不能看懂

作者: kkopopo    时间: 2014-2-25 19:17
本帖最后由 kkopopo 于 2014-2-25 19:20 编辑

不实例化,何来的成员变量,你觉得那是成员变量,JVM不觉得
成员变量是我们宿舍里面的床铺
成员方法是宿舍的厕所

我们没劲黑马能有床铺吗?


黑马要为每一个人分配一个厕所?


楼主不明白继续追问!

作者: 乔青山    时间: 2014-2-25 19:26
kkopopo 发表于 2014-2-25 19:17
不实例化,何来的成员变量,你觉得那是成员变量,JVM不觉得
成员变量是我们宿舍里面的床铺
成员方法是宿舍的厕 ...

也就是说:
方法区中只有方法,没有成员变量。
new出来的对象信息中只有成员变量,没有方法。
作者: kkopopo    时间: 2014-2-25 19:54
乔青山 发表于 2014-2-25 19:26
也就是说:
方法区中只有方法,没有成员变量。
new出来的对象信息中只有成员变量,没有方法。 ...

方法区存在:  方法和一切静态内容!
作者: 乔青山    时间: 2014-2-25 22:02
kkopopo 发表于 2014-2-25 19:54
方法区存在:  方法和一切静态内容!

我是说方法区中没有成员变量,对象中没有方法?。。。你回答重点
作者: 乔青山    时间: 2014-2-25 22:53
查了一下百度。。发现有人说成员变量在堆中,有人说在栈中。。。




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