书中提到:
- Java 程序设计语言总是采用按值调用
基本类型:

引用类型:

这种行为与 Go 类似. 主要要区分基本类型和引用类型.
书中举了例子来说明常见的错误: Java 方法参数是引用类型

- 方法内部的交换对外层不起作用

自己写的测试用例:
package chapter04;import java.time.LocalDate;import java.util.Objects;public class Employee {private String name;private double salary;private LocalDate hireDay;public Employee(String n, double s, int year, int month, int day) {name = Objects.requireNonNull(n, "The name cannot be null");salary = s;hireDay = LocalDate.of(year, month, day);}public String getName() {return name;}public static void Exchange(Employee x, Employee y) {Employee tmp = x;x = y;y = tmp;}}public class Main {public static void main(String[] args) {Employee employee1 = new Employee("abc", 123.03, 2021, 4, 28);Employee employee2 = new Employee("def", 123.03, 2021, 4, 28);Employee.Exchange(employee1, employee2);System.out.println(employee1.getName()); // abcSystem.out.println(employee2.getName()); // def}}
如果非要实现对外层进行交换, 那么参数的类型应该是
指针的指针,
