Koji je koncept String Pool u javi?

String Pool na Javi je skup Nizova pohranjenih u Java Heap Memory. Ovaj vodič pomoći će vam s detaljnim pristupom Java String Poolu s primjerima.

Jeste li čuli za taj pojam 'Niz stringova u Javi?' Pa, ako ne, sletjeli ste na pravo mjesto. String Pool u Javi je skup Strings koji je pohranjen u Sjećanje hrpe. Kopajmo malo dublje i detaljno shvatimo ovaj koncept Java String pool-a.

U ovom će se članku raspravljati o sljedećim uputama:





Započnimo!

stvoriti paket u javi

Prije svega, shvatimo kako se točno stvara objekt niza!



Kako stvoriti niz?

Postoje dva načina za stvaranje String objekta na Javi:

  • Korištenje novog operatora. Na primjer,
Niz s1 = novi niz ('Joey')
  • Upotreba doslovnog ili konstantnog izraza niza. Na primjer,
Niz s1 = 'Joey' (doslovni niz) ili niz s1 = 'Joe' + 'y' (konstantni izraz niza)

Sad, o čemu govorim o ovom String spremištu i kako je s tim povezano stvaranje niza u Javi. Daj da smanjim nered!

Što je String Pool na Javi?

String Pool je spremište u Java hrpi.



Dodjela niza, kao i svi alokacija objekata , pokazuje se skupom aferom i u slučaju vremena i u pamćenju. JVM izvodi neke korake dok inicijalizira niz literala radi povećanja performansi i smanjenja troškova memorije. Da bi se smanjio broj String objekata stvorenih u JVM-u, klasa String drži skup stringova.

Svaki put kada se stvori literal niza, JVM prvo provjerava spremište literalnih nizova. Ako niz već postoji u spremištu nizova, vraća se referenca na objedinjenu instancu. Ako niz ne postoji u spremištu, novi objekt String inicijalizira se i smješta u spremište.

Nakon teoretskog učenja koncepta, dopustite mi da vam kažem kako String pool funkcionira u Javi korak po korak uz pomoć jednostavnih instanci!

Kako String pool radi na Javi?

Kada kreirate novi niz poput ovog:

Niz s1 = 'Rachel'

JVM automatski provjerava postoji li ista vrijednost u spremištu konstanti niza ili ne.

  • ako da, zauzima već postojeću vrijednost.
  • Ako nije, on sam stvara novi niz i dodaje ga u spremište nizova.

Ako želite zaustaviti ovo ponašanje, stvorite niz pomoću novog operatora:

Niz s1 = novi niz (“Rachel”)

Ako ste voljni dodati ovaj niz u , Java vam nudi metodu koja se naziva intern () metoda koju možete nazvati nativnom intern () metodom poput ove:

S1.intern ()

Sada ću vam kroz primjer pokazati implementaciju i rad spremišta nizova.

Ali prije toga, kratki podsjetnik!

Kao što znate ako uspoređujete 2 objekta pomoću == operatora, on uspoređuje adrese u memoriji.

kako baciti double na int u javi

Stoga ćemo usporediti nizove koristeći == kako bismo bili potpuno sigurni da je riječ o istom objektu ili ne.

Sada, krenimo na naš proces implementacije.

Vodiči za Microsoft SQL Server za početnike

Niz stringova u Javi: Dijagram toka

Gudački bazen - Edureka

Sada shvatimo što se ovdje događa korak po korak:

  • Klasa se učitava kada se poziva.
  • JVM traži sve string literale u programu
  • Prvo pronalazi varijablu s1 koja se odnosi na doslovno 'Apple' i ona se stvara u memoriji
  • Tada se referenca za doslovni 'Apple' stavlja u memoriju spremišta konstantnih nizova.
  • Zatim pronalazi drugu varijablu s2 koja se odnosi na isti doslovni niz 'Mango'.
  • Tada pronalazi drugu varijablu s3 koja se odnosi na doslovno 'Apple'
  • Sad kad je JVM već pronašao doslovni niz 'Apple', i varijable s1 i s3 odnosit će se na isti objekt, tj. 'Apple'.

Java program za String Pool

javna klasa 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}}

Izlaz:

Pravi
Lažno
Pravi

U gornjem primjeru možete jasno vidjeti upotrebu inicijalizacije niza na sva tri načina, tj

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

Interni rad programa možda bi sada trebao biti jasan.

Ovim sam stigao do kraja svog bloga. Nadam se da su vam ovdje razrađeni sadržaji pomogli u širenju baze znanja. Nastavit ćemo roniti u svijet Jave. Pratite nas!

Pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA dizajniran je za studente i profesionalce koji žele biti programer Java. Tečaj je dizajniran da vam pruži početnu prednost u Java programiranju i osposobi vas za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate Proljeće .

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'String Pool na Javi', a mi ćemo vam se javiti što je prije moguće.