黑马程序员技术交流社区
标题: 内存的一些疑问 [打印本页]
作者: 谭辉 时间: 2013-3-20 15:49
标题: 内存的一些疑问
本帖最后由 谭辉 于 2013-3-21 07:40 编辑
下面是毕老师视频中讲到的对象初始化过程
1. .class文件并加载到内存中.
2. 执行该类中的static代码块,给Person.class类进行初始化
3. 在堆内存中开辟空间,分配内存地址
4. 在堆内存中建立对象的特有属性.并进行默认初始化.
5. 对属性进行显示初始化
6. 对对象进行构造代码块初始化
7. 对对象进行对应的构造函数初始化
8. 将内存的地址赋给栈内存中的p变量
我的疑问是类中的方法,变量,静态方法,和静态变量加载到了内存的哪块区域
作者: 宋耀冬 时间: 2013-3-20 15:55
方法,静态 当类被加载 进入内存的方法区
作者: 袁术森 时间: 2013-3-20 16:14
类的话 就是在被调用时就会加载进内存中的方法区 静态变量 方法都会在方法区中 方法区 也分静态的存储 和非静态的存储。堆内存就是创建实例、对象 所在之地。
作者: 全超 时间: 2013-3-20 16:15
类中的 非静态方法和方法代码,静态的方法和方法代码,静态变量都存放在方法区中。
非静态的类成员变量存放在堆内存中,即对象在堆内存中划分的那块存储区域中。
非静态的局部变量跟随方法区中方法的引用存放在栈内存中。
作者: 袁术森 时间: 2013-3-20 16:17
全超 发表于 2013-3-20 16:15
类中的 非静态方法和方法代码,静态的方法和方法代码,静态变量都存放在方法区中。
非静态的类成员变量存放 ...
非静态的类成员变量存放在堆内存中,即对象在堆内存中划分的那块存储区域中。
是这样的么
作者: 全超 时间: 2013-3-20 16:23
袁术森 发表于 2013-3-20 16:17
是这样的么
哪儿不妥??
作者: 谭辉 时间: 2013-3-20 17:01
全超 发表于 2013-3-20 16:15
类中的 非静态方法和方法代码,静态的方法和方法代码,静态变量都存放在方法区中。
非静态的类成员变量存放 ...
方法区中方法的引用是存放在栈中的吗?
作者: 全超 时间: 2013-3-20 17:11
谭辉 发表于 2013-3-20 17:01
方法区中方法的引用是存放在栈中的吗?
也不能叫引用,方法区中放是方法的代码,当要调用方法区中的方法时要在栈内存中为方法开辟空间
作者: 陈丽莉 时间: 2013-3-20 23:28
若还有问题,请继续追问;没有的话,请将帖子分类改成【已解决】~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |