为什么修改了 ArrayList 参数,而不是 String 参数?
2022-09-01 15:56:53
public class StackOverFlow {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("A");
al.add("B");
markAsNull(al);
System.out.println("ArrayList elements are "+al);
String str = "Hello";
markStringAsNull(str);
System.out.println("str "+ str);
}
private static void markAsNull(ArrayList<String> str){
str.add("C");
str= null;
}
private static void markStringAsNull(String str){
str = str + "Append me";
str = null;
}
}
此输出:
ArrayList elements are [A, B, C]
str Hello
在 的情况下,添加的元素将被检索。如果方法调用对传递的字符串没有影响。JVM 到底在做什么?任何人都可以详细解释吗?ArrayList
String