Uforanderlig streng i Java: Alt hvad du behøver at vide



Denne artikel vil give dig en detaljeret og omfattende viden om uforanderlig streng i Java, hvorfor er det vigtigt?

Håndtering af uforanderlig streng i er et meget vigtigt aspekt i ethvert programmeringssprog. I denne artikel vil vi diskutere følgende punkter:

Introduktion til uforanderlig streng i Java

Strengpuljen har strengobjekter, der cachelagres på grund af hvilken streng er uforanderlig. Flere klienter deler cachelagrede strengliteraler. Risiciene ved en klients handling vil påvirke alle de andre klienter.





For eksempel, når en klient ændrer strengværdien 'Test' til 'TEST', vil alle andre klienter se den ændrede værdi. Da caching af strengobjekter var vigtig for ydeevnen, undgik klassen Immutable String risikoen. Også, Streng blev gjort endelig, så invarianten i strengklassen ikke kompromitteres. Eksempel Uforanderlighed, caching, beregning af hashkode udført ved udvidelse og tilsidesættelse af adfærd.

Hashmap-nøgle

HashMap-nøglen er meget populær, uforanderlighed er meget vigtig, så værdiobjektet kan hentes fra HashMap. Hashing er princippet i HashMap, som kræver, at det samme har værdi for at fungere korrekt. Der produceres to forskellige hashkoder, en på tidspunktet for indsættelsen, og en anden på tidspunktet for hentning, når indholdet ændres efter indsættelsen, hvilket potentielt mister et objekt med kortværdien på kortet.



forklare forskellen mellem foranderlige og uforanderlige objekter.

Hashtable-uforanderlig streng i Java
Uforanderlig strengklasse i Java er den hyppigst stillede .Diskussionen starter med, hvad der er en streng, hvordan den adskiller sig fra streng i C ++, og derefter følger spørgsmålet om uforanderlige objekter i Java, fordelene ved det uforanderlige objekt, hvad er deres brug og scenarierne for at bruge dem.

Behov for uforanderlig streng i Java

To grunde er vigtige for at sige, hvorfor klasse Immutable String er lavet i Java:

1. Det er slet ikke muligt i tilfældet at have et strengobjekt / bogstaveligt.



Lad os henvise til nedenstående eksempel:

'Test' kan henvises med mange referencevariabler. Hvis nogen af ​​dem ændrer værdien for andre, påvirkes det også. Lad os se hvordan.

Streng A = 'Test'
Streng B = 'Test'


Streng A kaldet 'Test' .toUpperCase (), der ændrer det samme objekt til,'PRØVE'så B vil også være 'TEST', hvilket ikke er nødvendigt. Nedenfor er et diagram, der fortæller os, hvordan String oprettes i bunkehukommelse og String literal pool.

2. Strengen var i vid udstrækning blevet brugt som en parameter for mange Java-klasser. For eksempel, når vi åbner en netværksforbindelse, kan vi videregive værtsnavn og portnummer som en streng, for at åbne databaseforbindelse kan vi videregive database-URL'en som en streng.


En uforanderlig streng ville føre til alvorlige sikkerhedstrusler. For eksempel kan nogen få adgang til en fil, som han har adgang til, og derefter ændre navnet på filnavnet for at få adgang til den anden fil. I tilfælde af uforanderlighed er der ingen grund til at bekymre sig om disse trusler.

En uforanderlig streng kan også sikkert dele tråde, hvilket er vigtigt for multitrådet programmering. En uforanderlig strenginstans er trådsikker i Java, så det er ikke nødvendigt at synkronisere strengoperation eksternt for at undgå synkroniseringsproblemer i Java. Et andet vigtigt punkt at bemærke er hukommelseslækage forårsaget af Substring, som ikke er et trådrelateret problem, men noget at være opmærksom på.

Med dette kommer vi til slutningen af ​​denne artikel 'Uforanderlig streng i Java'. C heck ud af af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.