java方法中形式参数的传递相关面试题

class ArgsDemo{
    public static void main(String[] args){
        //定义两个变量
        int a = 10 ;
        int b = 20 ;
        System.out.println("a:"+a) ;//10
        System.out.println("b:"+b) ;//20
        //调用了一个方法
        change(a,b) ;//方法的参数如果是基本数据类型,形参的改变对实际参数没有影响
        System.out.println("a:"+a) ;//  10
        System.out.println("b:"+b) ;//  20
        //定义一个数组
        int[] arr = {1,2,3,4,5} ;
        change(arr) ;
        System.out.println(arr[1]) ; //4
    }
    public static void change(int a,int b){
        System.out.println("a:"+a) ;
        System.out.println("b:"+b) ;    
        a = b ;
        b = a+ b;
    }
    public static void change(int[] arr){  //形式参数是引用类型,形参的改变直接影响实际参数
        //遍历数组
        for(int x = 0 ; x < arr.length ; x ++){
            if(arr[x] %2 ==0 ){
                arr[x]*=2 ;
            }
        }
    }

}

图解:

猜你喜欢

转载自blog.51cto.com/14651315/2464211
今日推荐