java参数传递方式-值传递

demo1:

public static void methodOne(int a) {
        a++;
        System.out.println("methodOne a="+a);
    }
    
    public static void main(String[] args) {
        int a = 100;
        methodOne(a);
        System.out.println("main a="+a);
    }
//说明Java参数为值传递
输出结果为:
methodOne a=101
main a=100

  

demo2:

   public static void methodTwo(List<Integer> a) {
        a.add(101);
    }
    
    public static void main(String[] args) {
        List<Integer> a = new ArrayList<Integer>();
        a.add(100);
        methodTwo(a);
        System.out.println("main a="+a.toString());
    }
    //输出结果main a=[100, 101]
    看似向引用传递

  

demo3:

public static void methodTwo(List<Integer> a) {
        a = new ArrayList<Integer>();// 就在这加了这一句
        a.add(101);
    }
    
    public static void main(String[] args) {
        List<Integer> a = new ArrayList<Integer>();
        a.add(100);
        methodTwo(a);
        System.out.println("main a="+a.toString());
    }
    //输出结果main a=[100] 

猜你喜欢

转载自www.cnblogs.com/tankHui/p/9415174.html
今日推荐