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

转载请注明出处,原文地址:

中北大学 郑海鹏

最近在复习那九大排序算法时,意外的发现用冒泡排序、插入排序、选择排序等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 61 2 3 4 5

明白了吧~

,关于爱情的句子:情不知所起,一往而情深。

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

相关文章:

你感兴趣的文章:

标签云: