下面这个代码输出string为Java,而builder为Java and HTML 为什么builder改变了而string没改变
的有关信息介绍如下:String string = "Java"让内存中的文字池中包含了对象"Java",但传参的时候传进去的s只是一个传值调用,程序会把string复制一份,你在change方法里面对s的所有操作,实际上是宏梁卖对s的值进行改变,根蔽逗本不对影响到原来的string,所以string没有变。而StringBuilder builder = new StringBuilder(string)在堆内存中分配了一个叫"Java"的对象,栈里面有一个叫builder 的引用指向他,所以在传参的时候,传进去的是这个引用,对引用的操作会直接影响到引用所指向的对象,所以最后的结果改变了。如果我说的没错的话,你把String string = "Java"改为String string = new String ("Java"),那么string里渣碧面的值就会改变了。
版权声明:文章由 好百科 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.haobaik.com/life/307592.html