Strign型的变量通过形参传递后修改形参 String本身不会发生改变
作者:互联网
我们知道 String是被final修饰的是不可变的,每一次“=” 其实是相当于重新创建一个对象,我们知道引用数据类型在传递过程中是地址传递,基本数据类型在传递过程中是值传递。既然是地址传递并且又重新给这个s赋值了一个新的地址,为什么外部的s的值不变呢?带着这个问题查阅了部分资料和个人的代码实验。发现:在我们进行传递时不管是值传递还是地址传递传递的都会copy一个副本进行传递而不是‘原件’。在引用数据类型中,副本与原件指向同一个地址时改变地址内部的值原件会受到影响,但是如果改变了副本指向的地址那么副本的一切变化于原件就没有关系了。
所以当 方法中的s发生改变时相当于将副本指向了新的地址于原件自然就没有关系了,方法外部的s没有变化也就解释的通了。
标签:副本,String,形参,Strign,原件,数据类型,传递,地址,指向 来源: https://blog.csdn.net/weixin_55890103/article/details/120294674