Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递
(1)传递的是基本数据类型和String时,传递的是基本数据类型和String的内存值
String对象值不能改变,存储在常量区(Rom)
(2)传递的是非String对象时,传递的是非String类型的引用地址值
值传递过程是: 从实参传递给形参,即将实参的值赋值给形参,也就是说方法可以修改形参值,但不能修改实参值,例如:
1 public void change( int i,Person person){//将实参i的值1赋值给形参i,实参person的地址值赋值给形参person 2 i=3;//修改的是形参值,与实参无关 3 person.setAge(20);//修改形参person地址值指向的对象内容,与实参指向的对象一样,实参指向的对象内容也被改了 4 person = new Person();//修改的是形参值,引用地址值改了,与实参不同了 5 person.setAge(30);//修改形参person地址值指向的对象内容,与实参指向的对象不一样 6 } 7 8 @Test 9 public void testChange(){ 10 int i = 1; 11 Person person = new Person(); 12 person.setAge(10); 13 change(i,person); 14 System.out.println("i: "+i);//打印实参值 i: 1 15 Integer age = person.getAge(); 16 System.out.println("age: "+age);//打印实参指向的对象内容 age: 20 17 }