反射修改字串內容
阿新 • • 發佈:2021-01-25
反射修改字串內容
之前知道字串的值不能被修改,今天學習了反射,於是嘗試了一下結果修改成功了
不同的JDK版本使用不同的陣列(當前是char陣列)
程式碼如下:
public class de05 {
public static void main(String[] args) throws Exception {
String ss="111111";
Class reflect=ss.getClass();
Field f=reflect.getDeclaredField("value" );
f.setAccessible(true);
char[] b=(char[]) f.get(ss);
System.out.println(ss+"的hashcode= "+ss.hashCode());
b[0]='A';
System.out.println();
System.out.println(ss+"的hashcode= "+ss.hashCode());
}
}
結果:
字串被修改hashCode相同