java中形参和实参是占一个存储位置还是占两个

来源:百度知道 编辑:UC知道 时间:2024/06/12 01:33:53
存储位置为存储单元或存储块

"执行方法的时候,如果是基本数据类型是分配栈里的内存
方法执行完,你的形参就消失了

如果是new出来的东西在堆里分配内存 "
不错。
我可以补充一些:
一般地,对于一般的语言,形参是不会占有内存分配的,它只是用来在实参传入时匹配检测罢了,而对于实参,它是程序或线程 中实际存在的,会分配内配的。这个实参会在栈(stack)中有一份存储。但java对象的存在打破了这一个约定,java的对象是存在堆(heal)中的,当你new了一个对象实例时就会在堆中分配空间,同时一般的要运用这个对象会使用一个引用(或者你说是指针),而这个引用是放在栈中的,所以你上面所说的实参实际是用的那个引用,同时当你结束了方法调用时,这个引用也会消失,但是heal中实际存在的对象并不会立即消失,这一般的由gc来自动释放。
你说的存储位置我不大明白是什么意义,只能分析一下具体的内存分配情况。

在java中
形参:只表示参数的类型,不占用内存空间的;
实参:占用内存空间,但是类型要和形参相同。
所以java中实参占用存储位置。

执行方法的时候,如果是基本数据类型是分配栈里的内存
方法执行完,你的形参就消失了

如果是new出来的东西在堆里分配内存

形参好像直接就被释放掉了吧

实参占一个吧

形参不占用存储位置,实参才占用.