快捷搜索:

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参数通报机制的一些阐发。

您可能还会对下面的文章感兴趣: