logo

Uforanderlig streng i Java

En streng er en uundgåelig type variabel, mens du skriver ethvert applikationsprogram. Strengreferencer bruges til at gemme forskellige attributter som brugernavn, adgangskode osv. I Java, Stringobjekter er uforanderlige . Uforanderlig betyder simpelthen uforanderlig eller uforanderlig.

Når først String-objekt er oprettet, kan dets data eller tilstand ikke ændres, men et nyt String-objekt oprettes.

Lad os prøve at forstå begrebet uforanderlighed ved hjælp af eksemplet nedenfor:

Testimmutablestring.java

 class Testimmutablestring{ public static void main(String args[]){ String s='Sachin'; s.concat(' Tendulkar');//concat() method appends the string at the end System.out.println(s);//will print Sachin because strings are immutable objects } } 
Test det nu

Produktion:

 Sachin 

Nu kan det forstås af diagrammet nedenfor. Her er Sachin ikke ændret, men et nyt objekt er skabt med Sachin Tendulkar. Derfor er String kendt som uforanderlig.

Uforanderlig streng i Java

Som du kan se i ovenstående figur, er der oprettet to objekter, men s referencevariablen refererer stadig til 'Sachin' ikke til 'Sachin Tendulkar'.

Men hvis vi eksplicit tildeler den til referencevariablen, vil den referere til 'Sachin Tendulkar'-objektet.

For eksempel:

Testimmutablestring1.java

 class Testimmutablestring1{ public static void main(String args[]){ String s='Sachin'; s=s.concat(' Tendulkar'); System.out.println(s); } } 
Test det nu

Produktion:

streng json java
 Sachin Tendulkar 

I et sådant tilfælde peger s på 'Sachin Tendulkar'. Bemærk venligst, at Sachin-objektet stadig ikke er ændret.

Hvorfor String-objekter er uforanderlige i Java?

Som Java bruger begrebet String literal. Antag, at der er 5 referencevariable, alle refererer til ét objekt 'Sachin'. Hvis en referencevariabel ændrer værdien af ​​objektet, vil den blive påvirket af alle referencevariablerne. Det er derfor String-objekter er uforanderlige i Java.

Følgende er nogle funktioner i String, som gør String-objekter uforanderlige.

1. ClassLoader:

En ClassLoader i Java bruger et String-objekt som et argument. Overvej, hvis String-objektet kan ændres, kan værdien blive ændret, og den klasse, der formodes at blive indlæst, kan være anderledes.

For at undgå denne form for fejlfortolkning er String uforanderlig.

2. Trådsikker:

Da String-objektet er uforanderligt, behøver vi ikke tage os af den synkronisering, der kræves, mens vi deler et objekt på tværs af flere tråde.

3. Sikkerhed:

Som vi har set i klasseindlæsning, undgår uforanderlige String-objekter yderligere fejl ved at indlæse den korrekte klasse. Dette fører til at gøre applikationsprogrammet mere sikkert. Overvej et eksempel på banksoftware. Brugernavnet og adgangskoden kan ikke ændres af nogen ubuden gæst, fordi String-objekter er uforanderlige. Dette kan gøre applikationsprogrammet mere sikkert.

4. Heap Space:

Stringens uforanderlighed hjælper med at minimere brugen i heap-hukommelsen. Når vi forsøger at erklære et nyt String-objekt, kontrollerer JVM, om værdien allerede findes i String-puljen eller ej. Hvis den findes, tildeles den samme værdi til det nye objekt. Denne funktion gør det muligt for Java at bruge heap-pladsen effektivt.

objekt til json i java

Hvorfor String class er Final i Java?

Årsagen til, at String-klassen er endelig, er, at ingen kan tilsidesætte String-klassens metoder. Så det kan give de samme funktioner til de nye String-objekter såvel som til de gamle.