Java String设计为不可变安全方面的原因

Java的String类被设计成不可变的原因中,有一个是基于安全考虑,如果是可变的,有什么安全隐患呢,帮忙举个例子呗

阅读 1.9k
3 个回答

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

推荐问题
宣传栏