Kokia yra „String Pool“ java sąvoka?



„Java“ eilutės yra „Java Heap“ atmintyje saugomų eilučių grupė. Ši pamoka padės jums pateikti išsamų požiūrį į „Java String Pool“ su pavyzdžiais.

Ar girdėjote apie terminą „Stygų baseinas„ Java “?“ Na, jei ne, jūs nusileidote reikiamoje vietoje. Stringų baseinas „Java“ yra „Stygų“ telkinys, kuris yra saugomas Krūvos atmintis. Panagrinėkime šiek tiek giliau ir išsamiai supraskime šią „Java String“ baseino koncepciją.

Šiame straipsnyje bus aptariami šie patarimai:





Pradėkime!

Pirmiausia supraskime, kaip tiksliai sukurtas eilutės objektas!



Kaip sukurti eilutę?

Norėdami sukurti „String“ objektą „Java“, galite dviem būdais:

  • Naudojant naują operatorių. Pavyzdžiui,
Eilutė s1 = nauja eilutė ('Joey')
  • Naudojant eilutės tiesioginę ar pastovią išraišką. Pavyzdžiui,
Eilutė s1 = 'Joey' (eilutės tiesioginis tekstas) arba eilutė s1 = 'Joe' + 'y' (eilutės pastovi išraiška)

Kas yra šis „String“ baseinas, apie kurį kalbu ir kaip su tuo susijęs „Java“ eilutės sukūrimas. Leisk man nukirsti netvarką!

Kas yra „String Pool“ „Java“?

„String Pool“ yra „Java“ kaupo saugojimo vieta.



Styginių paskirstymas, kaip ir visi objekto paskirstymas , pasirodo brangus reikalas tiek laiko, tiek atminties atvejais. JVM atlieka keletą veiksmų inicijuodamas eilutės literalus, kad padidintų našumą ir sumažintų atminties pridėtines sąnaudas. Norėdami sumažinti „JVM“ sukurtų „String“ objektų skaičių, „String“ klasė saugo eilučių grupę.

Kiekvieną kartą, kai sukuriamas eilutės literalas, JVM pirmiausia patikrina eilutės tiesioginį junginį. Jei eilutė jau egzistuoja eilutės telkinyje, pateikiama nuoroda į sujungtą egzempliorių. Jei eilutėje nėra telkinyje, inicializuojamas naujas String objektas ir jis dedamas į baseiną.

Teoriškai išmokęs koncepciją, leiskite man papasakoti, kaip „String“ baseinas veikia „Java“ žingsnis po žingsnio, pasitelkiant paprastus egzempliorius!

Kaip „String pool“ veikia „Java“?

Kai kuriate naują tokią eilutę:

Eilutė s1 = „Reičelė“

JVM automatiškai patikrina, ar ta pati reikšmė yra eilutės pastoviame telkinyje, ar ne.

  • jei taip, tai užima jau esamą vertę.
  • Jei ne, jis pats sukuria naują eilutę ir prideda ją prie stygų grupės.

Jei norite sustabdyti šią elgseną, sukurkite eilutę naudodami naują operatorių:

String s1 = nauja eilutė („Rachel“)

Dabar, jei norite pridėti šią eilutę prie , „Java“ suteikia jums metodą, vadinamą, intern () metodą, kurį galite paskambinti tokiu būdu:

kaip naudoti rinkinius java
S1.vidinis ()

Dabar aš jums parodysiu stygų fondo įgyvendinimą ir veikimą per pavyzdį.

Bet prieš tai trumpas priminimas!

Kaip žinote, jei lyginate 2 objektus naudodami == operatorių, jis lygina adresus atmintyje.

Taigi palyginsime eilutes naudodami ==, kad būtume visiškai tikri, jog tai tas pats objektas, ar ne.

Dabar pereikime prie mūsų įgyvendinimo proceso.

java programa fibonacci serijoms

Styginių rinkinys „Java“: srauto diagrama

Styginių baseinas - „Edureka“

Dabar supraskime, kas čia vyksta, žingsnis po žingsnio:

  • Klasė įkeliama, kai yra iškviečiamas.
  • JVM ieško visų programoje esančių styginių literalų
  • Pirma, jis suranda kintamąjį s1, kuris nurodo pažodinį „Apple“, ir sukuriamas atmintyje
  • Tuomet pažodžiui „Apple“ pateikiama nuoroda į eilutės pastoviąją atmintį.
  • Tada jis randa kitą kintamąjį s2, kuris nurodo tą patį eilutės pažodį „Mango“.
  • Tada jis randa kitą kintamąjį s3, kuris nurodo pažodinį „Apple“
  • Dabar, kai JVM jau rado eilutės pažodį „Apple“, kintamieji s1 ir s3 nurodys tą patį objektą, t. Y. „Apple“.

„Java“ programa „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) // klaidinga System.out.println (s1 == s4) // true}}

Išvestis:

Tiesa
Klaidinga
Tiesa

Ankstesniame pavyzdyje galite aiškiai pamatyti eilučių inicijavimo naudojimą visais trimis būdais, t

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

Galbūt dabar turėtų būti aišku, koks yra programos vidinis darbas.

Tai pasiekiau savo tinklaraščio pabaigoje. Tikiuosi, kad čia išdėstytas turinys padėjo išplėsti savo žinių bazę. Mes ir toliau nersime į „Java“ pasaulį. Sekite naujienas!

Patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai yra skirti studentams ir specialistams, norintiems būti „Java“ kūrėjais. Kursas sukurtas tam, kad galėtumėte pradėti programuoti „Java“ ir išmokyti pagrindines ir pažangiausias „Java“ koncepcijas kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate“ ir Pavasaris .

Turite mums klausimą? Prašau tai paminėti šio „String Pool in Java“ tinklaraščio komentarų skyriuje ir mes kuo greičiau susisieksime su jumis.