子程序变量的问题
java程序运行的时候,有两个空间,一个是stack,一个heap。stack中保存method以及method中的primitive variable以及对象的地址, heap中保存对象。
对于int,char之类的primitive型的变量,子程序收到值后,会在本地新建一个变量,所以不会影响原值。
对于对象而言,子程序收到的是对象在heap中的地址,所以如果对对象进行操作,原值也会改变。
综上所述,java中变量的传递其实是传得value,但是由于对象传递的地址,所以有点看起来像传递reference的感觉。