A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭辉 中级黑马   /  2013-3-20 15:49  /  1271 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 谭辉 于 2013-3-21 07:40 编辑

下面是毕老师视频中讲到的对象初始化过程
1.     .class文件并加载到内存中.
2.     执行该类中的static代码块,给Person.class类进行初始化
3.     在堆内存中开辟空间,分配内存地址
4.     在堆内存中建立对象的特有属性.并进行默认初始化.
5.     对属性进行显示初始化
6.     对对象进行构造代码块初始化
7.     对对象进行对应的构造函数初始化
8.     将内存的地址赋给栈内存中的p变量

我的疑问是类中的方法,变量,静态方法,和静态变量加载到了内存的哪块区域

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

8 个回复

倒序浏览
方法,静态 当类被加载 进入内存的方法区

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
类的话 就是在被调用时就会加载进内存中的方法区 静态变量 方法都会在方法区中  方法区 也分静态的存储 和非静态的存储。堆内存就是创建实例、对象 所在之地。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
类中的 非静态方法和方法代码,静态的方法和方法代码,静态变量都存放在方法区中。
非静态的类成员变量存放在堆内存中,即对象在堆内存中划分的那块存储区域中。
非静态的局部变量跟随方法区中方法的引用存放在栈内存中。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
全超 发表于 2013-3-20 16:15
类中的 非静态方法和方法代码,静态的方法和方法代码,静态变量都存放在方法区中。
非静态的类成员变量存放 ...
非静态的类成员变量存放在堆内存中,即对象在堆内存中划分的那块存储区域中。

是这样的么
回复 使用道具 举报
袁术森 发表于 2013-3-20 16:17
是这样的么

哪儿不妥??
回复 使用道具 举报
谭辉 中级黑马 2013-3-20 17:01:17
7#
全超 发表于 2013-3-20 16:15
类中的 非静态方法和方法代码,静态的方法和方法代码,静态变量都存放在方法区中。
非静态的类成员变量存放 ...

方法区中方法的引用是存放在栈中的吗?
回复 使用道具 举报
全超 中级黑马 2013-3-20 17:11:36
8#
谭辉 发表于 2013-3-20 17:01
方法区中方法的引用是存放在栈中的吗?

也不能叫引用,方法区中放是方法的代码,当要调用方法区中的方法时要在栈内存中为方法开辟空间
回复 使用道具 举报
若还有问题,请继续追问;没有的话,请将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马