每日一练4: java方法参数的传递

java的数据类型有基本数据类型(byte、short、int、long、float、double、char、boolean)和引用数据类型(数组、接口、引用)。因此,java中方法参数的传递也包含这两种类型参数的传递,其一是对于基本数据类型是按值拷贝的方式传递参数;其二是对于引用数据类型是按拷贝引用的方式传递参数。

一、按值传递

对于基本数据类型是按值传递的,按值传递的意思就是值的传递按值拷贝的方式传递参数,形参或实参的改变互不影响。举例说明如下:在下图1中在主函数main中声明了一个局部变量num,调用f1(num)后num的值并没有发生变化,还是原来的1。因为在主函数main中各有一个栈变量来保存num的值,它们之间是相互独立的,主函数main中num的值不会受f1(num)中形参num改变的影响。

每日一练4: java方法参数的传递

图1基本数据类型参数传递

二、按引用传递

引用传递的是参数的地址,它们实际上指向同一块内存空间,当形参发生变化时,实参也将发生变化。举例说明如下,定义一个类A,类A里有成员变量a,如图2所示。如图3所示,定义一个测试类ParameterTest2,此处的形参指的是f1函数中的param变量,实参指的是main函数中的param。当f1函数中参数param发生变化时,主调函数main中的param也将发生变化,因为此时的形参和实参实际上是共享一块内存空间,实际运行结果如图4所示。数组和接口参数的传递也是同样的原理。

每日一练4: java方法参数的传递

图2类A的定义

每日一练4: java方法参数的传递

图3引用参数传递

每日一练4: java方法参数的传递

图4引用参数传递运行结果

感谢阅读,动一动您的手指,分享给身边的朋友吧!谢谢!

每日一练4: java方法参数的传递

长按识别二维码关注本文公众号