String类型为什么不变呢?
下文笔者讲述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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。