在java中取消String是否是一个好习惯

这个问题在这里已经有了答案:

  • 为什么字符[]优先于字符串的密码? 17个答案

  • 否。忽略一个字符串只会使引用脱钩 。 但是这个值仍然会存在于字符串池中。 由于为了节省内存,字符串值保留在字符串池中。

    任何潜在的黑客都可以通过访问字符串池来获取价值。

    而使用char [],您可以简单地将该对象视为任何其他对象。 并且取消char对象将在垃圾回收时清除堆中的数据。

    一个更好的选择将使用一个字节数组。

    阅读更多关于字符串常量池。


    如果你想要绝对安全,不需要。 排除字符串不是正确的解决方案。

    其原因是将它归零无法保证字符串不再可用。 尽管它可能会使垃圾收集的可能性更大(并且这只是一个'可能'),但不能保证垃圾收集的时间(或者甚至是)。

    您应该使用字节数组或char数组,然后在完成时清空数组中的每个元素。

    链接地址: http://www.djcxy.com/p/17885.html

    上一篇: Is it a good practice to nullifying String in java

    下一篇: Java storing sensitive 'key' as String or char[]?