在网站建设编码过程中,赋值用的是=运算符。它的意思是算出等号右边的值(通常称为rvalue),然后拷贝到等号左边(通常称为lvalue)。Rvalue可以是任何常量,变量或者是能产生值的表达式,而lvalue则只能是一个明确的,有名字的变量。也就是说,必须要有一个物理空间来存储这个值。比如,你可以将常量赋给变量,但是你不能将值赋给常量——也就是说,常量不能当lvalue的。
给primitive赋值还是比较简单的。由于primitive持有的是实实在在的值,而不是指向对象的reference,因此为primitive赋值的时候,你是将内容从一个地方直接拷贝到另一个地方。假设a和b都是primitive,如果你说a=b,那么b的内容会被拷贝到a。如果接下来你又修改了a,那么很显然b是不会受到影响的。对于程序员来说,在绝大多数情况下,这正是他们所需要的。
但是,给对象赋值的时候,情况就有所不同了。只要你想操控对象,你就得通过reference来进行操作,所以当你在对象之间进行赋值的时候,实际上你是在拷贝它的reference。也就是说,如果c和d都是对象,而你说c=d,结果就成了c和d都指向原先只有d指着的那个对象了。