随笔37 java中的值传递与引用传递
1.java中引用类型的实参向形参的传递,只是传递的引用,而不是传递的对象本身。
1 public class Tester{ 2 public static void main(String[] args){ 3 Integer var1=new Integer(1); 4 Integer var2=var1; 5 doSomething(var2); 6 System.out.print(var1.intValue()); 7 System.out.print(var1==var2); 8 } 9 public static void doSomething(Integer integer){ 10 integer=new Integer(2); 11 } 12 }
1、java语言参数之间只有值传递,包括按值调用和按引用调用。 一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。
按值调用:包括八大基本数据类型都是按值调用。传值的时候,也就是说方法得到的是所有参数值的一个拷贝。
按引用调用:数组、对象。传值时候,传递的是引用地址的拷贝,但是都是指向同一个对象。
2、String是不可变类(final and Immutable),是按值调用,这里只是把副本的指向修改成指向“test ok”,原地址str的指向的值没有发生改变。