当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java入门

Java参数传递机制分析:值与引用

    Java参数传递机制

    Java究竟是应该按照什么来传递参数?值?引用?还是两者皆有?

    其实,弄清楚这个问题得从概念入手。什么是按值传递,什么是按照参数传递。

    定义一个变量TestObject obj = new TestObject(); 然后把 obj 作为参数传递给一个方法。如果在这个方法中,只能改变obj指向的这个对象的内容,那就是“值传递”,传过去的值就是指向这个对象的指针。如果在这个方法中通过操作,使得返回后的obj指向另外一个对象(通过equal判断返回来的对象是否与原对象在内存中指向同一内存地址),那就是“引用传递”,传过去的是对这个指针变量的“引用”。

    Java参数传递机制分析代码

public class PersonT {

    public void change(Person p) {
        p.name = "mary";
        p.age = 20;
    }

    public void changeInt(int i) {
        i = 8;
    }
    public void change1(Person p){
//新建对象,name为tpm,age为22
       p = new Person("tom",22);
    }
    public static void main(String[] args) {
        PersonT t = new PersonT();
        Person p = new Person("john", 18);
        Person p1 = p;
        System.out.println(p);
//通过方法改变对象属性值
        t.change(p1);
        System.out.println(p1);
        System.out.println("传回来的值指向是否一致:" + p.equals(p1));
//通过方法改变整数值
        int i = 10;
        System.out.println("i值为:" + i);
        t.changeInt(i);
        System.out.println("i值为:" + i);
//新建一对象,改变对象值
        t.change1(p);
        System.out.println(p);
    }
}

    输出结果为:

    姓名:john年龄:18

    姓名:mary年龄:20

    传回来的值指向是否一致:true

    i值为:10

    i值为:10

    姓名:mary

    年龄:20

    以上就是对Java参数传递机制的一些分析。

相关内容
赞助商链接