当基本类型和引用类型作为方法的形式参数进行传递时:
1. 基本类型:形式参数的改变不影响实际参数;
2. 引用类型:形式参数的改变直接影响实际参数。
首先回答是为什么:
1. 基本类型作为形式参数传递时,参数传递方式为值传递;
2. 引用类型作为形式参数传递时,参数传递方法为引用传递;
什么是值传递,什么是引用传递?
1. 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法接收的是原始值的一个copy, 此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。
2. 引用传递:也称为地址传递、址传递。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,方法接收的是原始值的内存地址。因此在在方法执行中,形参和实参内容相同,指向同一块内存地址,方法执行中对引用的操作将会影响到实际对象。
注意:虽然String是引用类型,但是当形式参数类型为String时,其也是值传递形式。其形式参数的改变不影响实际参数。