一段代码证明为什么String会被设计成不可变的
Map<String,String> map = new HashMap<>(); String s = "Hello World"; String s1 = "Hello_World"; map.put(s,"111"); map.put(s1,"222"); System.out.println(map.toString()); Field valueFieldOfString = String.class.getDeclaredField("value"); valueFieldOfString.setAccessible(true); char[] value = (char[]) valueFieldOfString.get(s); value[5] = '_'; System.out.println(map.toString());