I got a passwd by Console.readPasswd().When I save it in char array (char[] passwd) and use System.out.println(passwd) .The result is
I input is "123".
import java.io.Console;
public class ConsoleTest1 {
public static void main(String[] args){
Console console = System.console();
String username = console.readLine("user name :");
System.out.println("user name ="+username);
char[] password = console.readPassword("passwd:");
System.out.println("password="+password);
}
}
But when save the passwd in String passwd(I know it's not recommended)
import java.io.Console;
public class ConsoleTest1 {
public static void main(String[] args){
Console console = System.console();
String username = console.readLine("user name :");
System.out.println("user name ="+username);
String password = new String(console.readPassword("passwd:"));
System.out.println("password="+ password);
}
}
It can be accurately print:
Why?