java string pool

¿Podemos acceder o consultar el grupo interno(constante) de String de Java?



pool (1)

No puedes acceder directamente al String intern pool .

Según Javadocs String intern pool Javadocs es:

Un conjunto de cadenas, inicialmente vacío, se mantiene de forma privada por la clase Cadena.

Sin embargo, los objetos String se pueden agregar a este grupo usando el método intern() String.

Javadocs devuelve una cadena internada, es decir, una que tiene una entrada en el grupo de cadenas globales. Si la cadena no está ya en el grupo de cadenas global, se agregará.

Programáticamente puedes seguir este enfoque:

  1. Declare Set<String> StringConstantPool = new HashSet<String>();
  2. llamada String.intern()
  3. Agregue String valor de String devuelto en este grupo StringConstantPool

¿Hay alguna forma de acceder a los contenidos del grupo de constantes String dentro de nuestro propio programa?

Digamos que tengo un código básico que hace esto:

String str1 = "foo"; String str2 = "bar";

Ahora hay 2 cadenas flotando en nuestro conjunto de cadenas constantes. ¿Hay alguna manera de acceder al grupo e imprimir los valores anteriores u obtener el número total actual de elementos actualmente contenidos en el grupo?

es decir

StringConstantPool pool = new StringConstantPool(); System.out.println(pool.getSize()); // etc