immutable不是不能修改reference值,是不能修改object里面的data,你还是直接看上面的C#的范例...既然会C++也给你一个C++版
http://ideone.com/DSzyGI不是我觉得,是java的reference变量真的就是pointer改是改pointer指的位址,但是在call by value的时候改不动caller func里面的pointer变量很明显就call by value/call by reference的差别啊..btw auto-boxing是指对只吃Object子class的地方(如list)自动包wrapper,unboxing是在assign给primitive变量的时候自动改为取值(.xxxValue)而不是assign reference如果全程都是直接用Integer这个class,那与一般class没差别把Integer assign给Integer变量是不会有auto-box/unbox行为