我正在编写一个小程序来测试Java的安全性。
public char[] getPW(){
return pwField.getPassword();
}
此方法返回一个char数组。但为什么会这样呢?背后有什么具体的想法吗? 为什么它不返回String?
答案 0 :(得分:-1)
好。关键是,String的生命周期有点特殊。
所有字符串都存储在字符串池中。当引用丢失(解除引用)时,例如当你说String = null;
字符串在内部字符串池中仍然存在时(并且可以以某种我不知道的方式访问)。这就是密码存储在char []中的原因。由于这些物体是“正常的”。