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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逸盏清茶 中级黑马   /  2013-5-16 17:34  /  1687 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 逸盏清茶 于 2013-5-17 00:15 编辑

看毕老师的视频,老师画图的时候说main是在栈内存中的,可是main函数是静态的,不应该是在方法区中的吗,那么主函数到底是在栈内存中 ,还是在方法区中呢?

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

7 个回复

倒序浏览
主函数是静态的,所谓的在方法区中是指类加载的时候它被放到方法区中,类加载完后就会以主函数为入口开始执行,这时main方法就会被调到桟内存中。

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
,类加载完后就会以主函数为入口开始执行,这时main方法就会被调到桟内存

那其他静态的方法也会像主函数一样,执行的时候会被加载到栈内存中吗
回复 使用道具 举报
更确切的说应该是 方法区中的main方法在运行时需要一个栈内存空间来存放main方法中的变量啊什么的
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
本帖最后由 第一枭雄 于 2013-5-16 21:31 编辑

可以这么理解,方法区中存的东西运行的时候是按顺序放到了栈内存运行的
只有引用型的才会把实体放堆内存中,而把引用变量放在栈内存中
你可以把栈内存想象为车间而堆内存是仓库
回复 使用道具 举报
逸盏清茶 发表于 2013-5-16 17:47
那其他静态的方法也会像主函数一样,执行的时候会被加载到栈内存中吗

是的,当一个类被用到时候,就会加载进内存,所谓的加载可以直观的理解为把定义类的一行行内容放到了内存中的相应的区域而不是去执行它,其中静态成员变量 静态方法都在方法区的静态区域,非静态函数包括构造函数在方法区的非静态部分,所以当你调用其他方法时,也是得先在栈内存为其开辟相应的空间。希望能帮到你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马