Kakšen je koncept String Pool v javi?



String Pool v Javi je sklop nizov, shranjenih v Java Heap Memory. Ta vadnica vam bo pomagala pri podrobnem pristopu k Java String Pool s primeri.

Ste že slišali za izraz 'Niz nizov v Javi?' No, če ne, ste pristali na pravem mestu. String Pool v Javi je sklop nizov, ki je shranjen v Kup spomina. Poglejmo nekoliko globlje in podrobno razumemo ta koncept Java String pool.

V tem članku bomo obravnavali naslednje napotke:





Začnimo!

Najprej razumemo, kako natančno je ustvarjen nizni objekt!



Kako ustvariti niz?

Stvarni objekt v Javi lahko ustvarite na dva načina:

  • Uporaba novega operaterja. Na primer,
Niz s1 = nov niz ('Joey')
  • Uporaba nizovnega dobesednega ali konstantnega izraza. Na primer,
Niz s1 = 'Joey' (dobesedno besedilo) ali niz s1 = 'Joe' + 'y' (konstantni izraz niza)

Zdaj, o čem govorim ta niz nizov in kako je s tem povezano ustvarjanje niza v Javi. Naj razrešim nered!

Kaj je String Pool v Javi?

String Pool je prostor za shranjevanje na kopici Java.



Dodelitev nizov, kot vsi dodeljevanje predmetov , se izkaže kot draga stvar tako v primeru časa kot spomina. JVM med inicializacijo nizovnih literalov izvede nekaj korakov, da poveča zmogljivost in zmanjša režijske stroške pomnilnika. Če želite zmanjšati število predmetov String, ustvarjenih v JVM, razred String hrani združbo nizov.

Vsakič, ko se ustvari niz literala, se JVM najprej preveri področje nizov literal. Če niz že obstaja v področju nizov, se vrne sklic na zbrani primerek. Če niz ne obstaja v področju, se novi objekt String inicializira in postavi v področje.

Po teoretičnem učenju koncepta naj vam povem, kako v Javi s pomočjo preprostih primerkov postopoma deluje združenje String v Javi!

Kako String pool deluje v Javi?

Ko ustvarite nov niz, kot je ta:

Niz s1 = 'Rachel'

JVM samodejno preveri, ali obstaja enaka vrednost v območju konstante nizov ali ne.

  • če da, zavzame že obstoječo vrednost.
  • Če ne, ustvari nov niz sam in ga doda v niz nizov.

Če želite ustaviti to vedenje, ustvarite niz z novim operatorjem:

Niz s1 = nov niz (“Rachel”)

Zdaj, če ste pripravljeni dodati ta niz v , Java vam ponuja metodo, imenovano intern (), ki jo lahko pokličete tako, kot je:

S1.interna ()

Zdaj vam bom skozi primer prikazal izvajanje in delovanje nizov.

Pred tem pa kratek opomnik!

Kot veste, če primerjate 2 predmeta z operatorjem ==, primerja naslove v pomnilniku.

Torej bomo primerjali nize z uporabo ==, da bomo popolnoma prepričani, da gre za isti predmet ali ne.

Zdaj pa pojdimo na naš postopek izvedbe.

Niz nizov v Javi: diagram poteka

Vrvica - Edureka

Zdaj pa dojemimo, kaj se tukaj dogaja korak za korakom:

  • Razred se naloži, ko se prikliče.
  • JVM išče vse nizovne literale v programu
  • Najprej najde spremenljivko s1, ki se nanaša na dobesedno 'Apple', in ta se ustvari v pomnilniku
  • Nato se referenca za dobesedno 'Apple' postavi v pomnilnik niza konstantnih bazenov.
  • Nato poišče še eno spremenljivko s2, ki se sklicuje na isto besedno dobesedno besedo 'Mango'.
  • Nato najde še eno spremenljivko s3, ki se nanaša na dobesedno 'Apple'
  • Zdaj, ko je JVM že našel nizovno dobesedno besedilo 'Apple', se bosta spremenljivki s1 in s3 nanašali na isti objekt, tj. 'Apple'.

Java program za String Pool

javni razred 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}}

Izhod:

Prav
Lažno
Prav

V zgornjem primeru lahko jasno vidite uporabo inicializacije nizov na vse tri načine, tj

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

Notranje delovanje programa bi moralo biti zdaj jasno.

S tem sem prišel do konca svojega spletnega dnevnika. Upam, da so vam tukaj obdelane vsebine pomagale razširiti bazo znanja. Še naprej se bomo potapljali v svet Jave. Ostani na vezi!

Oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je namenjen študentom in strokovnjakom, ki želijo biti razvijalec Java. Tečaj je zasnovan tako, da vam omogoči uvod v programiranje Java in vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Pomlad .

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega spletnega dnevnika 'String Pool in Java', da se vam bomo javili v najkrajšem možnem času.

c ++ rekurzivni fibonači