String是final类,常规情况下其值是不可变的。但是可以通过非常规方法——反射进行修改

/** 通过反射的方式来修改字符串String类的值
 * Created by liaoqianwen on 2016/7/8.
 */

public class StringReflectTest {
    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        String name = "angel";
        String name1 = "angel";

        Field strField = String.class.getDeclaredField("value");
        strField.setAccessible(true);
        char[] data = (char[])strField.get(name);
        data[4] = 'r';
        System.out.println(name);
        System.out.println(name1);
        System.out.println(name == name1);

    }
}


版权声明:本文为liaoqianwen123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。