java学习笔记15–引用传递详解编程语言

范例一

class Demo{ 
	public int temp = 30; 
} 
public class T { 
 
	public static void main(String[] args) { 
		// TODO Auto-generated method stub 
		Demo d1 = new Demo(); 
		d1.temp = 50; 
		System.out.println("fun()方法调用之前:"+d1.temp); 
		fun(d1); 
		System.out.println("fun()方法调用之后:"+d1.temp); 
	} 
	public static void fun(Demo d2){ 
		d2.temp = 1000; 
	} 
}

内存分析:

java学习笔记15--引用传递详解编程语言

 

范例二

public class T { 
 
	public static void main(String[] args) { 
		// TODO Auto-generated method stub 
		String str1 = "hello"; 
		System.out.println("fun()方法调用之前:"+str1); 
		fun(str1); 
		System.out.println("fun()方法调用之前:"+str1); 
	} 
	public static void fun(String s2){ 
		s2 = "MLDN"; 
	} 
 
}

内存分析

java学习笔记15--引用传递详解编程语言

 

范例三

class Demo{ 
	String temp = "hello"; 
} 
public class T { 
 
	public static void main(String[] args) { 
		// TODO Auto-generated method stub 
		Demo d1 = new Demo(); 
		d1.temp = "world"; 
		System.out.println("fun()方法调用之前:"+d1.temp); 
		fun(d1); 
		System.out.println("fun()方法调用之后:"+d1.temp); 
	} 
	public static void fun(Demo d2){ 
		d2.temp = "MLDN"; 
	} 
}

内存分析

java学习笔记15--引用传递详解编程语言

 

本程序与范例一的流程完全是一样的,范例二是特殊的,因为String是一个特殊的类,其内容不可改变

 

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/14332.html

(0)
上一篇 2021年7月19日 16:45
下一篇 2021年7月19日 16:45

相关推荐

发表回复

登录后才能评论