首先介绍下什么是形参和实参:
形参: 方法被调用时传递的参数。例如,func(a)中的a。只有func函数被调用期间,a才会被分配内存,func函数执行结束a释放销毁空间。
实参:方法被调用时候传递的实际值,他在方法被调用前就完成了实例化,并且在方法被调用时传入。如,int a=10。
值传递:
实参传递给形参的是值,形参和实参在内存上是两个独立的变量 对形参的改变不会影响到实参。
通俗来讲,形参=实参的一个副本,副本改变了不会影响到原本的值。
引用传递:
实参传递给形参的是堆内存中的引用地址,形参和实参指向同一内存地址。因此,形参改变实参也会改变。
JAVA中的方法,严格来说都是值传递。
对于基本数据类型,传递的是值拷贝。
对于引用类型,传递该变量所引用对象在堆内存中的地址拷贝。