代码改变世界

值传递和引用传递整理

2015-03-02 15:02  夜半花开  阅读(271)  评论(0编辑  收藏  举报

 

值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。

引用传递:称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。

注意:一般形参是基本数据类型时为值传递,形参是对象类型时为 引用传递。

例如:

public class Test1 {
 
    public static void changeStr(String str){
        str="welcome";
    }
    public static void main(String[] args) {
 
        String str="1234";
        changeStr(str);
        System.out.println(str);
    }
}

输出结果为“1234”;

相当于是值传递。

public class Test1 {
 
    public static void changeStr(List list){
        list.add("welcome");
    }
    public static void main(String[] args) {
         String str="1234";
         List list=new ArrayList<String>();
         list.add(str);
        changeStr(list);
        System.out.println(list.toString());
    }
}

输出结果是[1234,welcome];

该例是引用传递