Java值传递和引用传递

1 什么是Java值传递和引用传递

在Java中只有值传递,而没有引用调用。如果我们调用传递值的方法,则称为按值调用。在调用方法中完成的更改在调用方法时不受影响。

2 Java值传递-原始类型

如果值传递的是原始类型,则原始值是不会更改的。让我们举一个简单的例子:

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
class Demo{
    int data=50;

    void change(int data){
        data=data+100;//更改将仅在局部变量中
    }

    public static void main(String args[]){
        Operation op=new Operation();

        System.out.println("更改前:"+op.data);
        op.change(500);
        System.out.println("更改后:"+op.data);

    }
}

输出结果为:

更改前:50
更改后:50

3 Java值传递-对象类型

在值传递的过程,如果传递的是对象类型,如果被调用的方法进行数据更改,则原始值会被更改。下面示例中,我们将对象作为值传递。让我们举一个简单的例子:

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
class Demo{
    int data=50;

    void change(Demo op){
        op.data=op.data+100;//成员变量的值将被更改
    }


    public static void main(String args[]){
        Demo op=new Demo();

        System.out.println("更改前:"+op.data);
        op.change(op);//passing object
        System.out.println("更改后:"+op.data);

    }
}

输出结果为:

更改前:50
更改后:150

 

热门文章

优秀文章