package day06;
import javafx.collections.ListChangeListener.Change;
public class ArgsDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("----问题1-----");
int a=10;
int b=20;
System.out.println("a:"+a+",b"+b);//a:10,b:20
change(a,b);
System.out.println("a:"+a+",b"+b);//???问题1:a?b?
System.out.println("----问题2-----");
int []arr={1,2,3,4,5};
change(arr);
System.out.println(arr[1]);//??问题2:arr[1]?
}
//同名函数,根据参数传递类型不同,与返回值无关
public static void change(int a,int b){//a=10,b=20
System.out.println("a:"+a+",b"+b);//a:10,b:20
a=b;//a=20
b=a+b;//b=40
System.out.println("a:"+a+",b"+b);//a:20,b=40
}
public static void change(int []arr){//arr={1,2,3,4,5};
for(int i=0;i<arr.length;i++){
if(arr[i]%2==0){
arr[i]*=2;
}
}
//arr={1,4,3,6,5};
}
}
内存图:
输出结果:
总结:
JAVA中的参数传递问题:
基本类型:形式参数的改变对实际参数没有影响
引用类型:形式参数的改变直接影响实际参数