在方法中修改了String类型,String类型却不会改变?
来源:7-1 方法的调试
慕婉清2683173
2020-09-03 17:02:47
java传值和传引用的问题,我们都知道,类,数组,接口和String等等引用数据类型都是传引用,在方法中修改了引用类型的变量会改变原变量,而像基本数据类型都是传值,所以不会改变,但是String类型也是类,也是属于引用数据类型,String类型却不会改变!为什么呢?
2回答
浅梦sky
2020-09-15
String类型是不可变类,如果要对字符串操作可以使用StringBuilder
好帮手慕小脸
2020-09-03
同学你好,这里可以看一下源码:
首先用final修饰的类不能被继承,String类是一个典型的不可变类,当实例对象创建后,就不能再被改变。
结合上图来看String真正存储数据的地方在与char value[]. 存储在一个数组内, 且其定义为final类型. 也就是这个引用是不可改变的。且其声明为private类型的. 在外界无法访问
简单理解,String对象其实在内部就是一个个字符然后存储在这个value数组里面的。但是value对外没有setValue的方法,所以整个String对象在外部看起来就是不可变的。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题