Java语言中的值传递与引用传递

Java应用程序中永远不会传递对象,而只会传递对象应用,因此,按对象引用传递。

(1)      Int作为参数传递时,对形参值得修改不会影响到实参;

(2)      StringBuffer作为参数时,对形参对象内容的修改影响到了实参。

(3)      值传递只是传递了一个值的副本,对形参值得改变不会影响实参的值。

(4)      引用传递,由于参数的地址也是以值是方式传递的,因此,无法改变实参的地址,只能改变实参地址指向的对象的值。

(5)      String对象的传递,由于String对象的值是无法修改的,所以String对象作为参数时,对形参的修改不会影响到实参的地址,也不会改变实参地址指向的对象的值。而作为对象引用的传递,若该对象包含String类型的属性,使用该属性的set方法,可以设置该属性,但改变的是地址值。

(6)     在方法调用的时候,对形参引用所指对象属性值的修改对实参可见。但是,对引用值本身的修改对实参是不可见的。

String string1 = “123”;

string1 = string1 + “345”;

定义一个String s 其实是一个指向String对象的指针,string1 = String1 + “345”;将创建一个新的String对象来存放新的类容,原先的依旧在内存中,但s不再指向它。

(string1和“345”都是String对象,字符串相连接,必然会开辟空间来存储新的String对象)

猜你喜欢

转载自www.cnblogs.com/windy-xmwh/p/9159716.html