引用参数 -> 值类型
引用参数 -> 引用类型,创建新对象
引用参数 -> 引用类型,不创建新对象只改变对象值
对象的 HashCode 没有改变过。
注:上面示例中使用传值参数(不用 ref)结果也将一样,但内部机理不同。
传值参数创建了副本,方法里面的 stu 和 outterStu 不是一个对象,所指向的内存地址不一样,但是存储的地址是相同的,都存储的是 Student 实例在堆内存中的地址。
引用参数 stu 和 outterStu 指向的是同一个内存地址,这个内存地址里面存储的就是 Student 实例在堆内存中的地址。