Stack Overflow上面这个问题的回答已经很详尽了。解释下安全方面的。字符串被广泛用作许多Java类的参数,例如 网络连接,打开文件等。你想象下,如果字符串不是 immutable的,那么你的程序建立外部连接的时候或者打开文件的时候,那个用于建立连接的字符串就可以被修改,程序就会报错或者有更严重的安全威胁。再说一个,使用Java 反射API的时候,参数是不是也是字符串?那是不是也会有这种安全问题?
Stack Overflow上面这个问题的回答已经很详尽了。
解释下安全方面的。
字符串被广泛用作许多Java类的参数,例如 网络连接,打开文件等。
你想象下,如果字符串不是 immutable的,那么你的程序建立外部连接的时候或者打开文件的时候,那个用于建立连接的字符串就可以被修改,程序就会报错或者有更严重的安全威胁。
再说一个,使用Java 反射API的时候,参数是不是也是字符串?那是不是也会有这种安全问题?