75.按值和按参照(reference)
很多语言都被值和句柄("handle")之间经常出现的未申明的区别所混淆 -- Java 也不例外! 一个实体的(reference,address,pointer]
a = b; // 设置b的值为 a 的值
然而如果 a 或 b 是一个对象 , b 实际上是一个参照( reference), 因此 a 被指向和 b 相同的对象(即内存中的同一个"位置")
如果你用某种方式改变 b , 则 a 也将被改变
注意 null 的值是没有分配(构造)的对象, 所以不指向任何地方
如果 a 和 b 是原始类型, 则它们的值是 "实际的字面值" . 所以如果 b=66, 则 a 被设成 66
在这种情况下如果你改变了 b, 则 a 仍然保持自己的值
方法的参数始终是通过值来传送的但是如果一个对象是一个参数, 则该值总是一个参照( reference) and so in practice
原始类型的通过值传送
对象通过参照传送
Arrays reflect properties of what they are arrays of!
Copyright: NPACT