java为什么要用char[]代替String存储密码

走着路睡觉
  • java
小于 1 分钟

为啥在Swing中,获取password组件的密码getPassword() 返回char[] 而不是返回String。

因为String是不可变的,当创建了一个String时,如果另一个程序复制了这个String, 在GC回收之前,这个String会一直存储在内存中,产生漏泄风险。

用char[]存储密码,可以覆盖char[]中的每一个元素,一定程度上减少漏泄风险。

上次编辑于:
贡献者: zhaojingbo
Loading...