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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨翔 于 2013-1-15 22:32 编辑

     当内存载入一个类的时候该类的方法会载入到方法区(我原本以为静态的成员才放在方法区内的),我看到视频里非静态的方法在里面,在有一个对象要调用该方法并传入参数的时候,方法会到栈内存中去,我在想,是不是调用静态方法的时候,方法也会到栈内存中去的? 另外当非静态的方法调用结束后,还会在方法区内么,它的生命周期是不是要比静态方法短啊。 新手勿怪,还请大家指点下

评分

参与人数 1技术分 +1 收起 理由
邵天强 + 1 鼓励一下,希望多上论坛

查看全部评分

1 个回复

倒序浏览
本帖最后由 陈丽莉 于 2013-1-6 12:29 编辑

      调用方法的时候,栈内存中存的只是方法在方法区的地址,就像堆内存中的数组,初始化时也将所在地址存放在栈内存中。所以无论调用的是不是静态方法,方法的地址都要传入栈内存中以便调用的;
    静态方法的生命周期是和所在类的生命周期相同的,随着类的加载而开始,随着类的释放而释放。非静态方法(实例方法),随该类对象的建立而产生(对象值为空时除外),对象的使用结束而消亡。所以非静态方法的生命周期确实是比静态方法短的。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马