示例1
public class Test1 {
public static void main(String[] args) {
int a = 3;
System.out.format("before change: a=%d\n", a);
changeValue(a);
System.out.format("after change: a=%d\n", a);
}
public static void changeValue(int value) {
value = 5;
}
}
结果如下:

示例2
public class Test2 {
public static void main(String[] args) {
List<String> ll = new ArrayList<>();
ll.add("Lucy");
System.out.print("before change: ll = ");
ll.stream().forEach(x -> {
System.out.print(x + " ");
});
addBob(ll);
System.out.print("\nafter change: ll = ");
ll.stream().forEach(x -> {
System.out.print(x + " ");
});
}
public static void addBob(List<String> ll) {
ll.add("Bob");
}
}
结果如下:

示例3
public class Test3 {
public static void main(String[] args) {
String s = "Hello";
System.out.println("before change: s = "+s);
changeS(s);
System.out.println("after change: s = "+s);
}
public static void changeS(String s) {
s = s+" world";
}
}
结果如下:

参考文章: