形参和实参
形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
举例:
比如你定义一个函数public static int add(int a,int b),这里的a和b就是形参
当你进行函数调用的时候,add(1,2),这里的1和2就是实参。
引用传递
- 存储在栈上:基本数据类型如
int
,double
,char
等直接存储在栈(Stack)上。 - 复制值:当基本数据类型作为参数传递给方法时,实际上是传递了它们的值的副本。
- 修改限制:方法内部对参数的修改不会影响原始变量,因为方法中修改的是原始值的副本。
值传递
- 存储在堆上:引用数据类型如类(Class)、接口(Interface)、数组(Array)等存储在堆(Heap)上。
- 复制引用:当引用数据类型作为参数传递给方法时,传递的是指向堆上对象的引用的副本。
- 修改影响:方法内部可以通过引用修改原始对象的状态,因为引用指向的是同一个对象。