形式参数:
是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。
实际参数:
在调用有参函数时,主调函数和被调函数之间有数据传递关系。在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”。
值传递(pass by value)
是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
引用传递(pass by reference)
是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
而java中的引用基本是和指针一样,所以要考虑是改变引用对象的值,还是引用存储的“地址值”(内存中对象的地址)。java中一切都是值传递,在通过赋值操作给函数形参,是不会改变引用存储的“地址值”,只能改变其所指对象的值。总之,Java中的引用仅仅只是管理和命名对象。
java值传递
java中方法参数传递方式是按值传递。
如果参数是基本类型,传递的是基本类型的字面量值的拷贝。
如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝。
该地址其实是按值传递的,通过这个地址可以修改其指向内存处对象的值。改变该地址的值,只会失去对实际对象的管理。
对于基本类型 ,赋值运算符会直接改变变量的值,原来的值被覆盖掉。
对于引用类型,赋值运算符会改变引用中所保存的地址,原来的地址被覆盖掉。但是原来的对象不会被改变。
传递的话,关键看这个值是什么,简单变量就是复制了具体值,引用变量就是复制了地址。字符串是不可变的,不会被修改。