Мы можем получить доступ или запрос в строке Java стажер (постоянного) бассейн?
Есть ли способ получить доступ к содержимому пула констант строк в нашей собственной программе?
Скажем, у меня есть какой-то базовый код, который делает это:
String str1 = "foo";
String str2 = "bar";
Теперь в нашем пуле констант строк плавают 2 строки. Существует ли какой-либо способ получить доступ к пулу и распечатать вышеприведенные значения или получить текущее общее количество элементов, содержащихся в настоящее время в пуле?
То есть
StringConstantPool pool = new StringConstantPool();
System.out.println(pool.getSize()); // etc
1 ответ:
Вы не можете получить прямой доступ к
String intern pool.Согласно Javadocs
String intern poolэто:Однако объекты String могут быть добавлены в этот пул с помощью метода StringПул строк, изначально пустой, поддерживается частным образом строка класса.
intern().
java.lang.String.intern()возвращает интернированную строку, то есть строку, имеющую запись в глобальном пуле строк. Если строка еще не находится в глобальном пуле строк, то она будет добавлено.Программно вы можете следовать этому подходу:
- объявить
Set<String> StringConstantPool = new HashSet<String>();- вызов
String.intern()- добавьте возвращаемое значение
Stringв этот пулStringConstantPool