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