黑马程序员技术交流社区

标题: 关于老毕的视频里面对象调用成员过程的部分疑问 [打印本页]

作者: 杨翔    时间: 2013-1-5 23:21
标题: 关于老毕的视频里面对象调用成员过程的部分疑问
本帖最后由 杨翔 于 2013-1-15 22:32 编辑

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

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




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