为什么从对象JPasswordField返回一个char []的getPassword()?

时间:2014-05-30 11:30:21

标签: java string security char

我正在编写一个小程序来测试Java的安全性。

public char[] getPW(){
    return pwField.getPassword();
}

此方法返回一个char数组。但为什么会这样呢?背后有什么具体的想法吗? 为什么它不返回String?

1 个答案:

答案 0 :(得分:-1)

好。关键是,String的生命周期有点特殊。 所有字符串都存储在字符串池中。当引用丢失(解除引用)时,例如当你说String = null;字符串在内部字符串池中仍然存在时(并且可以以某种我不知道的方式访问)。这就是密码存储在char []中的原因。由于这些物体是“正常的”。