一道看似简单却难倒不少人的面试题。Java 中所有参数都是值传递,包括对象引用——传递的是引用的副本,而不是对象本身。
public class Hello {
public static void main(String[] args) {
String s = "123";
System.out.println(s);
m1(s);
System.out.println(s);
int i = 123;
System.out.println(i);
m2(i);
System.out.println(i);
}
private static void m1(String s) {
s = "321";
}
private static void m2(int i) {
i = 321;
}
}
运行结果是什么?