黑马程序员技术交流社区

标题: 关于可变参数的疑问 [打印本页]

作者: 尤洋    时间: 2012-8-2 11:12
标题: 关于可变参数的疑问
在看张老师的视频时看到 可变参数在被调用时,编译器为该可变参数隐含创建了一个数组,在方法体中以数组的形式访问可变参数。我就产生了一个疑问,
我们知道在内存中,方法是先存入栈内存,方法中的参数变量也跟着进入,等方法调用结束后再释放内存,而数组却是在栈内存中先产生一个引用变量,
然后在堆内存中储存数组实体,并生成地址 与栈内存中的引用变量相对应以方便调用。
   那么可变参数在被方法调用时究竟是以什么形式在内存中运行的呢?是只在栈内存中运行,还是像数组一样在堆和栈 中同时运行?它是运行完毕后就直接释放内存,还是在运行完毕后等java虚拟机的垃圾回收机制自动处理掉呢?
作者: 李东升    时间: 2012-8-2 15:00
既然只是一数组的形式调用,而没有创建数组,那么就不会像数组一样在堆和栈中都运行,我认为它只是在栈内存中运行,当这个方法调用完成后,直接释放内存。
作者: 胡文凡    时间: 2012-8-2 19:48
这个问题。。。啧啧
作者: 朱烈葵    时间: 2012-8-2 20:20
是个问题,呵呵我也想知道




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