Mi a String Pool fogalma java-ban?



A Java karakterlánckészlete a Java halom memóriájában tárolt karakterlánckészlet. Ez az oktatóanyag segít a Java String Pool részletes megközelítésében, példákkal.

Hallottál már a kifejezésről - String pool Java-ban? Nos, ha nem, akkor jó helyen landolt. A String Pool a Java-ban a Strings készlet, amelyet a Halom memória. Ássunk egy kicsit mélyebben és értsük meg részletesen a Java String pool ezen koncepcióját.

A következő mutatókról lesz szó ebben a cikkben:





Kezdjük!

Először is hadd értsük meg, hogyan jön létre pontosan egy string objektum!



különbség ansible és séf között

Hogyan hozzunk létre egy karakterláncot?

String objektum létrehozása Java-ban kétféleképpen érhető el:

  • Az új operátor használata. Például,
String s1 = új karakterlánc ('Joey')
  • String literál vagy állandó kifejezés használata. Például,
String s1 = 'Joey' (karakterlánc karakterlánc) vagy String s1 = 'Joe' + 'y' (karakterlánc konstans kifejezés)

Most mi ez a String készlet, amiről beszélek, és hogyan kapcsolódik ehhez egy string létrehozása a Java-ban. Hadd vágjam el a rendetlenséget!

Mi a String Pool a Java-ban?

A String Pool egy tárhely a Java halomban.



Karakterlánc-allokáció, mint minden objektum allokáció , költséges ügynek bizonyul mind az idő, mind az emlékezet esetében. A JVM néhány lépést hajt végre, miközben inicializálja a karakterlánc-literálokat, hogy növelje a teljesítményt és csökkentse a memória rezsit. A JVM-ben létrehozott String objektumok számának csökkentése érdekében a String osztály karakterláncokat tárol.

Minden egyes karakterlánc-szó létrehozásakor a JVM először ellenőrzi a karakterlánc karakterkészletet. Ha a karakterlánc már létezik a karakterlánc-készletben, akkor az összevont példányra való hivatkozás visszatér. Ha a karaktersorozat nem létezik a készletben, egy új String objektum inicializálódik, és a készletbe kerül.

Miután elméletileg megtanulta a koncepciót, hadd mondjam el, hogyan működik egy String pool Java-ban lépésről lépésre egyszerű példányok segítségével!

Hogyan működik a String pool Java-ban?

Új ilyen karakterlánc létrehozásakor:

String s1 = „Rachel”

A JVM automatikusan ellenőrzi, hogy ugyanaz az érték létezik-e a karakterlánc konstans készletében, vagy sem.

  • ha igen, elfoglalja a már meglévő értéket.
  • Ha nem, akkor létrehoz egy új karakterláncot, és hozzáadja azt a karakterkészlethez.

Ha le szeretné állítani ezt a viselkedést, hozzon létre egy karakterláncot új operátor használatával:

String s1 = új karakterlánc („Rachel”)

Most, ha hajlandó hozzáadni ezt a karakterláncot a , A Java biztosítja az úgynevezett metódust, intern () metódust, amelyet így hívhat a natív intern () metódusra:

S1.intern ()

Most egy példán keresztül bemutatom a string készlet megvalósítását és működését.

mi az összesítés a java-ban

De előtte egy rövid emlékeztető!

Mint tudja, ha 2 objektumot hasonlít az == operátor használatával, összehasonlítja a memóriában lévő címeket.

Tehát összehasonlítjuk a karakterláncokat a == használatával, hogy teljesen biztosak legyünk abban, hogy ugyanaz az objektum vagy sem.

Most ugorjunk át a megvalósítási folyamatunkra.

Stringkészlet Java-ban: Folyamatdiagram

String-pool - Edureka

Most megértjük, mi történik itt lépésről lépésre:

  • Az osztály betöltődik, amikor hivatkozik.
  • A JVM megkeresi a program összes karakterláncát
  • Először megtalálja az s1 változót, amely a szó szerinti „Apple” -re utal, és létrejön a memóriában
  • Ezután a szó szerinti „Apple” referenciát helyezzük a karakterlánc konstans készlet memóriájába.
  • Ezután talál egy másik s2 változót, amely ugyanarra a karakterlánc szó szerinti „Mango” -ra utal.
  • Ezután talál egy másik s3 változót, amely a szó szerinti „Apple” -re utal.
  • Most, hogy a JVM már talált egy karakterlánc szó szerinti „Apple” -et, az s1 és az s3 változók ugyanarra az objektumra, azaz „Apple” -re hivatkoznak.

Java program a String Poolhoz

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) // hamis System.out.println (s1 == s4) // true}}

Kimenet:

Igaz
Hamis
Igaz

A fenti példában jól látható a karakterlánc inicializálásának használata mindhárom módon, azaz

Karakterlánc s1 = 'Rachel' karakterlánc s2 = 'Rachel' karakterlánc s3 = új karakterlánc ('Rachel') karakterlánc s4 = új karakterlánc ('Rachel'). Gyakornok ()

A program belső működésének talán most egyértelműnek kell lennie.

Ezzel eljutottam a blogom vége felé. Remélem, hogy az itt kidolgozott tartalom segített a tudásbázis bővítésében. Merülünk tovább a Java világába. Maradjon velünk!

Nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát olyan hallgatók és szakemberek számára tervezték, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték, hogy előrelépést nyújtson a Java programozásban, és betanítson mind az alapvető, mind a fejlett Java koncepciókra, különféle Java keretrendszerekkel együtt, mint például a Hibernate & Tavaszi .

Van egy kérdésünk? Kérjük, említse meg a „String Pool in Java” blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.