Java的值传递,一言以蔽之,就是拷贝一份传递。
当参数是一个基本数据类型i时,传递的是i的拷贝,此时不会改变i的值。
当参数是一个对象a时(除String外),传递的是a的引用的拷贝,此时会改变的值。
重点:当参数是一个String类型s时,此时并不会改变值,因为s = "bb"(等价于s = new String(“bb”))会直接在常量池创建一个String对象,然后把引用复制给s,此时调用方和方法内的s并不是指向同一块内存区域了,所以不会改变s的值。
Java的值传递,一言以蔽之,就是拷贝一份传递。
当参数是一个基本数据类型i时,传递的是i的拷贝,此时不会改变i的值。
当参数是一个对象a时(除String外),传递的是a的引用的拷贝,此时会改变的值。
重点:当参数是一个String类型s时,此时并不会改变值,因为s = "bb"(等价于s = new String(“bb”))会直接在常量池创建一个String对象,然后把引用复制给s,此时调用方和方法内的s并不是指向同一块内存区域了,所以不会改变s的值。