Quin és el concepte de String Pool a Java?



String Pool a Java és un conjunt de cadenes emmagatzemades a la memòria Heap de Java. Aquest tutorial us ajudarà amb un enfocament detallat de Java String Pool amb exemples.

Heu sentit a parlar del terme 'Agrupació de cadenes a Java?' Bé, si no, heu aterrat al lloc adequat. String Pool a Java és un grup de cadenes que s’emmagatzema a Memòria Heap. Aprofundim una mica més i entenem detalladament aquest concepte de grup de Java String.

En aquest article es debatran els consells següents:





Anem a començar!

què és char a Java

En primer lloc, entenem com es crea exactament un objecte de cadena.



Com es crea una cadena?

Per crear un objecte String a Java, hi ha dues maneres:

  • Utilitzant el nou operador. Per exemple,
Cadena s1 = cadena nova ('Joey')
  • Utilitzant una expressió literal o constant de cadena. Per exemple,
Cadena s1 = 'Joey' (cadena literal) o Cadena s1 = 'Joe' + 'y' (expressió constant de cadena)

Ara, què és aquest grup de cadenes de què estic parlant i com està relacionada la creació d’una cadena a Java. Deixeu-me reduir el desordre!

Què és String Pool a Java?

String Pool és una àrea d'emmagatzematge a l'emmagatzematge dinàmic Java.



Assignació de cadenes, com totes assignació d'objectes , demostra ser un afer costós tant en els casos de temps com de memòria. La JVM realitza alguns passos mentre inicialitza els literals de la cadena per augmentar el rendiment i disminuir la sobrecàrrega de la memòria. Per reduir el nombre d'objectes de cadena creats a la JVM, la classe de cadenes manté un conjunt de cadenes.

Cada vegada que es crea un literal de cadena, el fitxer JVM comprova primer el grup literal de cadenes. Si la cadena ja existeix a l'agrupació de cadenes, torna una referència a la instància agrupada. Si la cadena no existeix a l'agrupació, s'inicialitza un nou objecte de cadena i es col·loca a l'agrupació.

Després d'aprendre el concepte teòricament, permeteu-me explicar-vos com funciona una piscina de cadenes a Java pas a pas amb l'ajuda d'instàncies senzilles.

Com funciona la piscina de cadenes a Java?

Quan creeu una cadena nova com aquesta:

Cadena s1 = 'Rachel'

JVM comprova automàticament si existeix o no el mateix valor a l'agrupació constant de cadenes.

  • en cas afirmatiu, ocupa el valor ja existent.
  • Si no, crea una cadena nova per si mateixa i l'afegeix a l'agrupació de cadenes.

Si voleu aturar aquest comportament, creeu una cadena amb un operador nou:

Cadena s1 = cadena nova ('Rachel')

Ara, si esteu disposat a afegir aquesta cadena al fitxer , Java us proporciona un mètode anomenat, mètode intern () que podeu anomenar mètode natiu intern () com aquest:

S1.intern ()

Ara, us mostraré la implementació i el treball de l'agrupació de cadenes a través d'un exemple.

Abans, però, un petit recordatori.

Com ja sabeu, si compareu 2 objectes amb l’operador ==, compara les adreces de la memòria.

tipus de transformacions en informàtica

Així, compararem les cadenes amb == per estar completament segurs que és o no el mateix objecte.

Ara anem al nostre procés d’implementació.

menú desplegable a angularjs

Grup de cadenes a Java: diagrama de flux

String-pool - Edureka

Ara comprenem el que passa aquí pas a pas:

  • La classe es carrega quan s’invoca.
  • JVM busca tots els literals de cadena al programa
  • En primer lloc, troba la variable s1 que fa referència al literal 'Apple' i es crea a la memòria
  • A continuació, es col·loca una referència per al literal 'Apple' a la memòria de l'agrupació de cadenes constants.
  • Després troba una altra variable s2 que fa referència a la mateixa cadena literal 'Mango'.
  • Després troba una altra variable s3 que fa referència al literal 'Apple'
  • Ara que JVM ja ha trobat una cadena literal 'Apple', les variables s1 i s3 es refereixen al mateix objecte, és a dir, 'Apple'.

Programa Java per a String Pool

public class StringPoolExperiment {public static void main (String [] args) {String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). intern ( ) System.out.println (s1 == s2) // true System.out.println (s1 == s3) // false System.out.println (s1 == s4) // true}}

Sortida:

És cert
Fals
És cert

A l'exemple anterior, podeu veure clarament l'ús de la inicialització de cadenes de les tres maneres, és a dir

String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). Intern ()

El funcionament intern del programa potser hauria de ser clar ara.

Amb això, he arribat al final del meu bloc. Espero que els continguts aquí elaborats us hagin ajudat a ampliar la vostra base de coneixement. Seguirem submergint-nos en el món Java. Estigueu atents!

Consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per a conceptes Java bàsics com avançats, juntament amb diversos marcs Java com Hibernate i Primavera .

Tens alguna pregunta? Si us plau, mencioneu-ho a la secció de comentaris d’aquest bloc “String Pool in Java” i us respondrem el més aviat possible.