码迷,mamicode.com
首页 > 编程语言 > 详细

Java 传参数时,传值和传引用的区别

时间:2015-03-30 09:27:23      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:java   中北大学   木质的旋律   传值   传引用   

转载请注明出处,原文地址: http://blog.csdn.net/h28496/article/details/44732713

中北大学 郑海鹏 


最近在复习那九大排序算法时,意外的发现用冒泡排序、插入排序、选择排序等in-place sort时,

sort(a);
再把a输出,就是已经排好序的新数组了。

但是用归并排序等out-place sort时,sort(a); 之后,输出的还是原来的数组!

为什么呢?请看代码和里面的注释:


package zhp.outplace_sort;

import zhp.Tools;

public class Test {

	public static void main(String[] args) {
		int[] a1 = {1, 2, 3, 4, 5};
		int[] a2 = {1, 2, 3, 4, 5};
		
		f1(a1);
		f2(a2);
		
		Tools.print(a1); // 输出数组
		Tools.print(a2);
	}
	
	/**
	 * 方法内改变参数的值(在原内存单元操作),方法结束后参数值是改变后的。
	 */
	public static void f1(int[] a){
		for(int i = 0; i < a.length; i++){
			a[i]++;
		}
	}
	
	/**
	 * 方法内将参数指向一个新的地址后,方法结束后参数还是会指向原来的地址。
	 */
	public static void f2(int[] a){
		a = new int[]{2, 3, 4, 5, 6};
	}

}

输出:

2 3 4 5 6 
1 2 3 4 5 


明白了吧~



Java 传参数时,传值和传引用的区别

标签:java   中北大学   木质的旋律   传值   传引用   

原文地址:http://blog.csdn.net/h28496/article/details/44732713

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!