所谓的引用传递就是将只想对内存的空间使用权交给多个占内存空间,下面通过3个范例来加深前面所学内容的理解。
1.范例一
class Demo{
int temp =50;
}
public class Demo1 {
public static void main(String[] args) {
Demo d = new Demo();
d.temp=60;
System.out.println("调用fun方法之前:"+d.temp);
fun(d);
System.out.println("调用fun方法之后"+d.temp);
}
private static void fun(Demo d) {
d.temp=100;
}
}
/**结果 变了
调用fun方法之前:60
调用fun方法之后100
*/
2.引用传递
public class Demo1 {
public static void main(String[] args) {
String str = "hello";
System.out.println("调用fun方法之前:"+str);
fun(str);
System.out.println("调用fun方法之后:"+str);
}
private static void fun(String str2) {
str2="java";
}
}
/**结果 没变
调用fun方法之前:hello
调用fun方法之后: hello
*/
3.引用传递三
class Demo{
String str = "eclipse";
}
public class Demo1 {
public static void main(String[] args) {
Demo d= new Demo();
d.str = "hello";
System.out.println("调用fun方法之前:"+d.str);
fun(d);
System.out.println("调用fun方法之后: "+d.str);
}
private static void fun(Demo d2) {
d2.str="java";
}
}
/**结果变了
* 调用fun方法之前:hello
*调用fun方法之后: java
**/
内存分布和第一个一样,大家可以好好看看。