String类型为什么不变呢?

戚薇 Java经验 发布时间:2023-06-27 08:50:45 阅读数:7567 1
下文笔者讲述String数据类型不可变的原因分析,如下所示
String中使用一个char数组来存储字符串
String不可变的原因,
 底层使用char数组(此数组由private修饰)
   且String没有对外提供修改char数组的方法,所以我们无法修改char数组的值
==========================================================================
这就是String无法修改的原因

修改String的方法

String  s = "java265";
Class<? extends String> aClass = s.getClass();
Field value = aClass.getDeclaredField("value");//得到这个value属性
value.setAccessible(true);//将它设置成可以访问
char[] chars =  (char[]) value.get(s);
System.out.println(s);//在修改之前输出s
chars[0] = 'g';			//修改g
System.out.println(s);//输出修改之后的s
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202306/16878270836908.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者