Mikä on String Pool -sovelluksen käsite jaavassa?



String Pool Java: ssa on Java Heap -muistiin tallennettujen merkkijonojen pooli. Tämä opetusohjelma auttaa sinua käsittelemään yksityiskohtaisesti Java String Poolia esimerkkien avulla.

Oletko kuullut termistä 'String pool Java?' No, jos ei, olet laskeutunut oikeaan paikkaan. String Pool Java: ssa on Strings Pool, joka on tallennettu kohteeseen Kasan muisti. Kaivetaan vähän syvemmälle ja ymmärretään tämä Java String -poolin käsite yksityiskohtaisesti.

Tässä artikkelissa käsitellään seuraavia vihjeitä:





Aloitetaanpa!

Ensinnäkin, ymmärretään miten merkkijono-objekti luodaan tarkalleen!



Kuinka luoda merkkijono?

String-objekti voidaan luoda Java-sovelluksessa kahdella tavalla:

  • Uuden operaattorin käyttö. Esimerkiksi,
Merkkijono s1 = uusi merkkijono ('Joey')
  • Merkkijonon kirjaimen tai vakiolausekkeen käyttäminen. Esimerkiksi,
Merkkijono s1 = 'Joey' (merkkijono literaali) tai merkkijono s1 = 'Joe' + 'y' (merkkijonon vakiolauseke)

Mikä on tämä String-allas, josta puhun, ja miten merkkijonon luominen Java-järjestelmään liittyy tähän. Anna minun leikata sotku!

Mikä on String Pool Java-ohjelmassa?

String Pool on Java-kasan varastoalue.



Merkkijonojen jakaminen, kuten kaikki objektin allokointi , osoittautuu kalliiksi tapauksiksi sekä ajan että muistin tapauksissa. JVM suorittaa joitain vaiheita aloittaessaan merkkijonolitrat suorituskyvyn parantamiseksi ja muistin yleiskustannusten vähentämiseksi. JVM: ssä luotujen merkkijono-objektien määrän vähentämiseksi String-luokka pitää yllä merkkijonoja.

Joka kerta, kun merkkijono kirjain luodaan, JVM tarkistaa ensin merkkijonon kirjaimellisen ryhmän. Jos merkkijono on jo merkkijonopoolissa, viittaus yhdistettyyn ilmentymään palautetaan. Jos merkkijonoa ei ole poolissa, uusi merkkijono-objekti alustuu ja sijoitetaan pooliin.

Kun olen oppinut käsitteen teoreettisesti, haluan kertoa teille, kuinka merkkijono-allas toimii Java-sovelluksessa vaihe vaiheelta yksinkertaisten instanssien avulla!

Kuinka String pool toimii Javassa?

Kun luot uuden merkkijonon:

Merkkijono s1 = “Rachel”

JVM tarkistaa automaattisesti, onko sama arvo merkkijonovakioalueessa vai ei.

  • jos kyllä, se käyttää jo olemassa olevaa arvoa.
  • Jos ei, se luo itselleen uuden merkkijonon ja lisää sen merkkijonopooliin.

Jos haluat pysäyttää tämän toiminnan, luo merkkijono uudella operaattorilla:

Merkkijono s1 = uusi merkkijono (“Rachel”)

Nyt, jos olet valmis lisäämään tämän merkkijonon , Java tarjoaa sinulle kutsutun menetelmän, intern () -menetelmän, jonka voit kutsua native intern () -menetelmäksi seuraavasti:

siirtää tiedostoja ec2 Windows -esiintymään
S1.sisä ()

Esitän sinulle esimerkkijonopoolin toteutuksen ja työskentelyn.

Mutta ennen sitä lyhyt muistutus!

Kuten tiedät, vertaatko kahta objektia == -operaattorilla, se vertaa muistissa olevia osoitteita.

Joten vertaamme merkkijonoja == -toiminnolla varmistaaksemme, että se on sama esine vai ei.

Hyppää nyt käyttöönottoprosessiin.

kaksinkertainen intiin java

Jousisarja Poolassa Java: Vuokaavio

String-pool - Edureka

Ymmärretään nyt, mitä täällä tapahtuu askel askeleelta:

  • Luokka ladataan, kun kutsutaan.
  • JVM etsii ohjelmasta kaikkia merkkijonolitraaleja
  • Ensinnäkin se löytää muuttujan s1, joka viittaa kirjaimelliseen 'Appleen', ja se luodaan muistiin
  • Tämän jälkeen viittaus kirjaimelliseen “Omenaan” lisätään merkkijonovakion vakiovarastoon.
  • Sitten se löytää toisen muuttujan s2, joka viittaa samaan merkkijonon kirjaimeen 'Mango'.
  • Sitten se löytää toisen muuttujan s3, joka viittaa kirjaimellisesti 'Apple'
  • Nyt kun JVM on jo löytänyt merkkijonon kirjaimen 'Apple', sekä muuttujat s1 että s3 viittaavat samaan objektiin eli 'Apple'.

Java-ohjelma String Poolille

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'). harjoittelija ( ) System.out.println (s1 == s2) // true System.out.println (s1 == s3) // false System.out.println (s1 == s4) // true}}

Tuotos:

Totta
Väärä
Totta

Yllä olevassa esimerkissä näet selvästi merkkijonon alustamisen käytön kaikilla kolmella tavalla, ts

Merkkijono s1 = 'Rachel' Merkkijono s2 = 'Rachel' Merkkijono s3 = uusi merkkijono ('Rachel') Merkkijono s4 = uusi merkkijono ('Rachel'). Harjoittelija ()

Ohjelman sisäisen toiminnan pitäisi ehkä olla selvä nyt.

Tällä tavoin olen päässyt blogini loppuun. Toivon, että tässä esitetty sisältö auttoi sinua laajentamaan tietämyskantaasi. Sukellamme jatkuvasti Java-maailmaan. Pysy kanavalla!

Katso Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssi on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-käsitteitä sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & kevät .

Onko sinulla kysymys meille? Mainitse se tämän 'String Pool in Java' -blogin kommenttiosassa, niin otamme sinuun yhteyttä mahdollisimman pian.