java传值和传引用区别

1. 在java中所有的参数都是传值的,引用符号&的传递是C++中才有的;
2. 在java传参中,基本类型(byte--short--int--long--float--double--boolean--char)的变量总是按值传递;
3. 对于对象来说,不是将对象本身传递给方法,而是将对象的的引用或者说对象的首地址传递给方法,引用本身是按值传递的;
4. 对于String、Integer、Long,数组等,这些都相当于对象,因此传参时相当于是传引用;
5. 从下面代码例子中可以看出来

public static void main(String[] args) {
     int k = 10;
     int[] nums = {1,4,32,89,6,21,56,74,41,57,85,36,20};
     System.out.println("test1= " + nums[0]);
     quickSort(nums,10,20);
     System.out.println("test3= " + nums[0]);
}
 
private static void quickSort(int[] sortNum, int startIndex, int endIndex)
{
     int temp = 1;
     int[] test2 = {40,50,60};
     sortNum = test2;
     System.out.println("test2= " + sortNum[0]);
}

输出结果如下
test1= 1
test2= 40
test3= 1

posted @ 2018-08-10 15:48  黄进广寒  阅读(399)  评论(0编辑  收藏  举报