一、定义
值传递:当⼀个参数按照值的⽅式在两个⽅法之间传递时,调⽤者和被调⽤者其实是⽤的两个不同的变量——被调⽤者中的变量(原始值)是调⽤者中变量的⼀份拷⻉,对它们当中的任何⼀个变量修改都不会影响到另外⼀个变量。
引用传递:当⼀个参数按照引⽤传递的⽅式在两个⽅法之间传递时,调⽤者和被调⽤者其实⽤的是同⼀个变量,当该变量被修改时,双⽅都是可⻅的。
二、举例
值类型:
public static void main(String[] args) {
int i = 5;
f(i);
System.out.println("i = " + i);
}
public static void f(int j) {
j = 10;
}
调用函数 f() 时,会将 main 中 形参 i 的值赋值给形参 j。这是两个不同的变量,对变量 j 的操作不会影响变量 i
引用类型:
public static void main(String[] args) {
String name = "张三";
f(name);
System.out.println("name = " + name);
}
public static void f(String name) {
name = "李四";
}
由于name是引用类型,name中保存的值是一个地址,调用函数 f() 时,会将这个地址传给形参 name,之后形参 name 中会保存字符串 "李四" 的地址,形参 name 的地址没有改变,输出的自然是张三了。
标签:Java,name,形参,传递,String,static,变量 From: https://www.cnblogs.com/shiguangrusuo/p/18018553