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:
- Kako stvoriti niz?
- Što je String pool u Javi?
- Kako String pool radi na Javi?
- Dijagram toka
- Java program za String pool
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
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.