Здесь есть несколько разных проблем. Во-первых, термин «постоянный пул» относится к очень специфической части файлов классов для строковых и числовых литералов или к структурам данных, сгенерированным из этой части файлов классов, которые находятся в JVM. Пароль не будет храниться здесь, если он не является частью файлов классов.
Однако некоторые объекты String действительно хранятся и совместно используются в программе через интернирование String. Любой строковый литерал автоматически интернируется, как и любые строки, для которых вы вызываете метод intern (). Насколько я знаю, однако, никакие другие строки не сохраняются таким образом, поэтому, если вы сами автоматически не интернируете строки, содержащие пароли, я не думаю, что вам нужно беспокоиться об этом.
Еще одна проблема, о которой следует помнить, это то, что если вы не хотите, чтобы пароли находились в памяти, вам, возможно, следует быть осторожным со сборкой мусора, поскольку строка, на которую больше не ссылаются, все еще может находиться в памяти. Точно так же, если вы используете определенные строковые методы, такие как подстрока, которые совместно используют вспомогательные представления между строками, вы можете хранить полную строку пароля после того, как закончите ее использовать.
Если вас беспокоит то, что другой Java-код может видеть старые пароли, которые были интернированы или все еще живут в памяти, однако вам не нужно беспокоиться. Невозможно перебрать или просмотреть элементы интернированного пула строк или взломать строку, чтобы увидеть ее резервный массив.