在方法中修改了String类型,String类型却不会改变?

来源:7-1 方法的调试

慕婉清2683173

2020-09-03 17:02:47

java传值和传引用的问题,我们都知道,类,数组,接口和String等等引用数据类型都是传引用,在方法中修改了引用类型的变量会改变原变量,而像基本数据类型都是传值,所以不会改变,但是String类型也是类,也是属于引用数据类型,String类型却不会改变!为什么呢?

写回答

2回答

浅梦sky

2020-09-15

String类型是不可变类,如果要对字符串操作可以使用StringBuilder

0

好帮手慕小脸

2020-09-03

同学你好,这里可以看一下源码:

http://img.mukewang.com/climg/5f50c55e09e0cbec05200176.jpg


首先用final修饰的类不能被继承,String类是一个典型的不可变类,当实例对象创建后,就不能再被改变。

结合上图来看String真正存储数据的地方在与char value[]. 存储在一个数组内, 且其定义为final类型. 也就是这个引用是不可改变的。且其声明为private类型的. 在外界无法访问

简单理解,String对象其实在内部就是一个个字符然后存储在这个value数组里面的。但是value对外没有setValue的方法,所以整个String对象在外部看起来就是不可变的。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


0

0 学习 · 16556 问题

查看课程