看了高手的讲解后,小小总结一下,原文:http://zangweiren.iteye.com/blog/214369#comments
java中的变量分为2种类型:
- 基本类型变量,包括char、byte、short、int、long、float、double、boolean
- 引用类型变量,包括类、接口、数组(基本类型数组和对象数组)
传入方法的参数也就有上面的2种类型,下面分这2种情况说明传入的变量到底是什么?是否可能被改变?
- 基本类型变量被当作参数传递给方法时,JAVA虚拟机所做的工作是把这个值拷贝了一份,然后把拷贝后的值传递到了方法的内部。因此在方法实体中,无法给重新赋值,无法改变原变量的值。
- 对象和引用型变量被当作参数传递给方法时,JAVA虚拟机会拷贝一份这个变量所持有的引用,然后把该引用传递给JAVA虚拟机为方法创建的局部变量,从而这两个变量指向了同一个对象。在方法实体中,方法无法改变原变量重新赋值,即无法改变原变量指向哪个引用。但是可以改变它所指向对象的属性。