`

对象引用和值引用的区别

 
阅读更多
public static void main(String[] args){
		ArrayList arrayList=new ArrayList();
		//(1)Boy aBoy=new Boy("z");
		for(int i=0;i<20;i++){
			//(2)Boy aBoy=new Boy("z");
			arrayList.add(aBoy);
		} 
		((Boy)arrayList.get(1)).setName("d");
		System.out.print( ((Boy)arrayList.get(1)).getName());
		System.out.print( ((Boy)arrayList.get(2)).getName());
	}

 

8种基本类型的引用都是值引用;

那么Java类的引用是 值引用还是对象引用呢?

看情况;

 

代码中(1)的是对象引用,代码(2)就是值了;为什么;

从打印结果可以看出,

(1)注释打开,对象引用 指向一个Boy;

(2)注释打开,值引用 指向20个Boy,list里的每个boy都是独一无二的;都是New出来的

 

分享到:
评论
1 楼 alafqq 2016-03-29  
总结:浅拷贝是指在拷贝对象时,对于基本数据类型的变量会重新复制一份,而对于引用类型的变量只是对引用进行拷贝,

没有对引用指向的对象进行拷贝。

而深拷贝是指在拷贝对象时,同时会对引用指向的对象进行拷贝。

区别就在于是否对  对象中的引用变量所指向的对象进行拷贝。

相关推荐

Global site tag (gtag.js) - Google Analytics