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] 

 

posted @ 2018-08-03 17:03  tank的个人博客  阅读(139)  评论(0编辑  收藏  举报