今天遇到一个java中的基础知识,尽然记不清了java中实参的值会随形参的改变改变嘛?
测试代码
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
s();
}
public static void s() {
List<String> list = new ArrayList<>();
Add(list);
for (String s : list) {
System.out.println(s);
}
}
public static void Add(List<String> list) {
list.add("asdasd");
}
}
输出结果展示
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
s();
}
public static void s() {
String list = new String();
Add(list);
System.out.println(list);
}
public static void Add(String list) {
list = "aa";
}
}
结论
实参:如果是基本类型或者String,则实参不会变(传的是值);
如果是对象集合或者数组,则实参会改变(传的是引用)。