Java中的值传送和引用传递

Java中的值传递和引用传递

当一个变量最为一个参数传入方法内部的时候,会有两种不同的传递方式:值传递和引用传递。

值传递的特点:不管方法内部对传进去的参数作任何改变,也不会影响方法外部的变量的值

引用传递的特点:方法内部对传进去的参数作的改变也会影响方法外部的变量的值


那么哪些是值传递,哪些是引用传递呢?

  1. 基本类型(8种)的传递都是值传递
  2. 引用类型(除String外)都是引用传递
  3. Strng比较特殊,它虽然是引用类型,但是却是值传递


通过一下例子来理解:

Student.java


Test.java


运行结果:

Before change:
i:0
student:张三
str:123
After change:
i:0
student:李四
str:123


从运行结果可以看出,int和String类型的值经过change方法后没有变,而student的值变了。