修改String的值,地址不发生改变
String在进行字符串拼接时,会把值存在常量池中,这时候地址就会发生改变
String底层维护了一个char[]类型的数组,所以可以通过反射去暴力修改里面的值
public class lovertc{
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
String str = "初始值";
System.out.println(str+"--"+str.hashCode());
//通过反射获取属性
Field field = str.getClass().getDeclaredField("value");
//开启属性更改
field.setAccessible(true);
//将原有属性重新设值
field.set(str,new char[]{'改','变','了'});
System.out.println(str+"--"+str.hashCode());
}
}


浙公网安备 33010602011771号