Hva er begrepet String Pool i java?



String Pool in Java er en pool av strenger lagret i Java Heap Memory. Denne opplæringen vil hjelpe deg med en detaljert tilnærming til Java String Pool med eksempler.

Har du hørt om begrepet “Strengbasseng i Java?” Hvis ikke, har du landet på rett sted. String Pool i Java er en pool av strenger som er lagret i Heap Memory. La oss grave litt dypere og forstå dette konseptet med Java String-basseng i detalj.

Følgende tips vil bli diskutert i denne artikkelen:





La oss begynne!

Først av alt, la oss forstå hvordan akkurat et strengobjekt blir opprettet!



Hvordan lage en streng?

For å lage et strengobjekt i Java, er det to måter:

  • Bruke den nye operatøren. For eksempel,
Streng s1 = ny streng ('Joey')
  • Ved hjelp av en streng bokstavelig eller konstant uttrykk. For eksempel,
String s1 = 'Joey' (streng bokstavelig) eller String s1 = 'Joe' + 'y' (streng konstant uttrykk)

Nå, hva er dette strengbassenget jeg snakker om, og hvordan er opprettelsen av en streng i Java relatert til dette. La meg kutte ned rotet!

Hva er String Pool i Java?

String Pool er et lagringsområde i Java-dyngen.



Strengfordeling, som alle objektallokering , viser seg å være en kostbar affære i både tid og minne. JVM utfører noen trinn mens du initialiserer strenglitteratur for å øke ytelsen og redusere minneoverhead. For å redusere antall strengobjekter som er opprettet i JVM, holder klassen streng et basseng med strenger.

Hver gang en streng bokstavelig blir opprettet, vil JVM sjekker strengen bokstavelig bassenget først. Hvis strengen allerede eksisterer i strengbassenget, returnerer en referanse til den samlede forekomsten. Hvis strengen ikke eksisterer i bassenget, initialiseres et nytt strengobjekt og plasseres i bassenget.

k betyr klyngeeksempel datasett

Etter å ha lært konseptet teoretisk, la meg fortelle deg hvordan fungerer et strengbasseng i Java trinn for trinn ved hjelp av enkle forekomster!

Hvordan fungerer String pool i Java?

Når du oppretter en ny streng som dette:

String s1 = “Rachel”

JVM sjekker automatisk om den samme verdien eksisterer i strengkonstantbassenget eller ikke.

  • Hvis ja, opptar den allerede eksisterende verdi.
  • Hvis nei, oppretter den en ny streng i seg selv og legger den til i strengbassenget.

Hvis du vil stoppe denne oppførselen, kan du opprette en streng ved hjelp av en ny operator:

Streng s1 = ny streng (“Rachel”)

Nå, hvis du er villig til å legge til denne strengen i , Java gir deg en metode som heter intern () -metoden du kan kalle native intern () -metode som denne:

S1.intern ()

Nå vil jeg vise deg implementering og arbeid av strengbasseng gjennom et eksempel.

Men før det, en kort påminnelse!

Som du vet, hvis du sammenligner to objekter ved hjelp av == operator, sammenligner det adressene i minnet.

Linux-administratorroller og ansvar

Så vi vil sammenligne strengene ved hjelp av == for å være helt sikre på at det er det samme objektet eller ikke.

La oss nå hoppe på implementeringsprosessen.

String Pool i Java: Flow Diagram

String-pool - Edureka

La oss nå forstå hva som skjer her trinn for trinn:

  • Klassen er lastet når påberopes.
  • JVM ser etter alle stryklitteraturene i programmet
  • Først finner den variabelen s1 som refererer til bokstavelig 'Apple' og den blir opprettet i minnet
  • En referanse for det bokstavelige “Apple” plasseres deretter i strengkonstantminnet.
  • Deretter finner den en annen variabel s2 som refererer til samme streng bokstavelig 'Mango'.
  • Deretter finner den en annen variabel s3 som refererer til bokstavelig 'Apple'
  • Nå som JVM allerede har funnet en streng bokstavelig 'Apple', vil både variablene s1 og s3 referere til det samme objektet, dvs. 'Apple'.

Java-program for String Pool

offentlig klasse 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}}

Produksjon:

ekte
Falsk
ekte

I eksemplet ovenfor kan du tydelig se bruken av strenginitialisering på alle de tre måtene, dvs.

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

Programmets interne arbeid bør kanskje være klart nå.

Med dette har jeg nådd mot slutten av bloggen min. Jeg håper innholdet som er beskrevet her, hjalp deg med å utvide kunnskapsbasen din. Vi vil fortsette å dykke inn i Java-verdenen. Følg med!

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Vår .

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'String Pool in Java' -bloggen, så kommer vi tilbake til deg så snart som mulig.