参数传递

198 阅读1分钟

基本类型

Java的基本类型都是通过值传递的方式进行参数传递

值传递(Pass by Value)是指在函数调用时,将实际参数的值复制一份到形式参数中,此时实际参数和形式参数在内存中分别拥有独立的内存空间,函数对形式参数的操作不会影响到实际参数。在函数执行完毕后,形式参数所占用的内存空间将被释放。Java的基本数据类型都是通过值传递的方式进行参数传递。

对象类型

Java的对象类型都是通过引用传递的方式进行参数传递

引用传递(Pass by Reference)是指在函数调用时,将实际参数的地址(或指针)传递给形式参数,此时实际参数和形式参数在内存中指向同一块内存空间,函数对形式参数的操作会直接影响到实际参数。Java的对象类型都是通过引用传递的方式进行参数传递。

需要注意的是,Java中的引用传递是针对对象的引用进行传递,而不是针对对象本身进行传递。如果在函数中修改了对象的属性,那么实际参数所引用的对象的属性也会发生变化;但如果在函数中对形式参数重新赋值,那么实际参数所引用的对象不会发生变化

无论是值传递还是引用传递,都是将参数的值复制一份,而不是将参数本身传递给函数。因此,在函数内部对参数进行修改并不会影响到参数本身