Javaプログラム上で高機密性情報(パスワード文字列など)を扱う場合、セキュリティ的にはjava.lang.Stringクラスよりchar型の配列char[]の方が好ましい。
Java言語の文字列Stringインスタンスは不変(Immutable)なオブジェクトであり、メモリ上からデータ破棄されるタイミングはGCに依存する。一方char[]ならばプログラマがメモリ上でのデータ存在期間を制御できる。
関連URL
- java - Why is char[] preferred over String for passwords? - Stack Overflow
- Java Cryptography Architecture(JCA) Reference Guide: Using Password-Based Encryption, パスワードベース暗号化の使用