码迷,mamicode.com
首页 > 编程语言 > 详细

java中的值传递和引用传递

时间:2015-01-20 17:04:59      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

先弄清楚两者的概念

按值传递:意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。

按引用传递:意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。

函数传参:

1、原始数据类型是按值传递的。

public class test {

    public static void main(String[] args){

        int i=1;
        change(i);
        System.out.println(i);
    }

    private static void change(int var) {
        // TODO Auto-generated method stub
        var=-var;
    }
}

 输出:1

2、对象就是传引用

public class test {

    public static void main(String[] args){

        Person person=new Person();
        person.i=1;
        change(person);
        System.out.println(person.i);
    }

    private static void change(Person tmp) {
        // TODO Auto-generated method stub
        tmp.i=100;
    }
}

输出:100

 

 

String类型因为没有提供自身修改的函数,每次操作都是新生成一个String对象,所以要特殊对待。可以认为是传值。

Done!

java中的值传递和引用传递

标签:

原文地址:http://www.cnblogs.com/xingyyy/p/4236291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!