Java方法的传值

方法的传值
1、如果实参数据类型是基本数据类型,传递给形参的就是值的拷贝,
做任何操作都不会影响原值
a.如果通过拷贝值找到原堆内存改变里面的元素就会影响原堆内存
b.如果拷贝的地址值没有找到原内存那么做任何操作都不会有影响
2、如果实参数据类型是引用数据类型,传递给形参的就是地址值的拷

方法的传值(代码):

package cn.jl.lwj;
//java中所有的方法执行在栈中
public class MethodDemo3 {
public static void main(String[] args) {
//定义变量
/* int i=1;
System.out.println(i);//1*/
int[] arr={4,5,6};
//实参—给定参数具体的值
//如果实参是一个基本类型数据,传的是值的拷贝
//arr[0] //仍然是基本类型数据
/* m(arr[0]);
System.out.println(arr[0]);//4*/
//如果实参的数据类型是引用数据类型,那么传的就是地址值
/* n(arr);//10
System.out.println(arr[0]);//10*/
//如果实参是引用数据类型,传递的就是地址值的拷贝,如果拷贝的地址值没有找到原堆内存就不会有影响
mn(arr);
System.out.println(arr[0]);//4
}
public static void m(int i){//形参—用于接受实参的值
i++;//操作的是拷贝值
}
public static void n(int[] arr){//={4,5,6}
arr[0]=10;//拿到传过来的地址值找到对应的堆内存改变数据有影响
}
public static void mn(int[] arr){
arr=new int[4];//把拷贝的地址值覆盖了
arr[0]=10;
}
}
输出:4

方法的传值(代码图):

Java方法的传值输出:
Java方法的传值