首页 > 编程语言 > 详细

java中的值传递和引用传递

时间:2015-01-20 17:03:46      阅读:188      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!