logo

Nemaināma virkne Java

Virkne ir nenovēršams mainīgā veids, rakstot jebkuru lietojumprogrammu. Virkņu atsauces tiek izmantotas, lai saglabātu dažādus atribūtus, piemēram, lietotājvārdu, paroli utt. Java, Stīgu objekti ir nemainīgi . Nemainīgs vienkārši nozīmē nemodificējams vai negrozāms.

Kad String objekts ir izveidots, tā datus vai stāvokli nevar mainīt, bet tiek izveidots jauns String objekts.

Mēģināsim izprast nemainīguma jēdzienu, izmantojot tālāk sniegto piemēru:

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 } } 
Izmēģiniet to tagad

Izvade:

np.sum
 Sachin 

Tagad to var saprast, izmantojot tālāk sniegto diagrammu. Šeit Sachin netiek mainīts, bet tiek izveidots jauns objekts ar Sachin Tendulkar. Tāpēc stīga ir pazīstama kā nemainīga.

Nemaināma virkne Java

Kā redzams iepriekš attēlā, tiek izveidoti divi objekti, bet s atsauces mainīgais joprojām attiecas uz 'Sachin', nevis uz 'Sachin Tendulkar'.

Bet, ja mēs to tieši piešķiram atsauces mainīgajam, tas atsauksies uz objektu 'Sachin Tendulkar'.

Piemēram:

Testimmutablestring1.java

 class Testimmutablestring1{ public static void main(String args[]){ String s='Sachin'; s=s.concat(' Tendulkar'); System.out.println(s); } } 
Izmēģiniet to tagad

Izvade:

 Sachin Tendulkar 

Šādā gadījumā s norāda uz “Sachin Tendulkar”. Lūdzu, ņemiet vērā, ka joprojām Sachin objekts nav modificēts.

Kāpēc stīgu objekti Java ir nemainīgi?

Tā kā Java izmanto jēdzienu String literal. Pieņemsim, ka ir 5 atsauces mainīgie, visi attiecas uz vienu objektu 'Sachin'. Ja viens atsauces mainīgais maina objekta vērtību, to ietekmēs visi atsauces mainīgie. Tāpēc stīgu objekti Java ir nemainīgi.

Tālāk ir norādītas dažas String funkcijas, kas padara String objektus nemainīgus.

1. Classloader:

Java ClassLoader kā argumentu izmanto objektu String. Apsveriet, ja String objekts ir modificējams, vērtība var tikt mainīta un ielādējamā klase var atšķirties.

java iterators kartei

Lai izvairītos no šāda veida nepareizas interpretācijas, virkne ir nemainīga.

iterēt karti java

2. Pavedienu drošs:

Tā kā virknes objekts ir nemainīgs, mums nav jārūpējas par sinhronizāciju, kas nepieciešama, koplietojot objektu vairākos pavedienos.

3. Drošība:

Kā mēs redzējām klases ielādēšanas laikā, nemainīgi String objekti izvairās no turpmākām kļūdām, ielādējot pareizo klasi. Tas ļauj padarīt lietojumprogrammu drošāku. Apsveriet banku programmatūras piemēru. Lietotājvārdu un paroli nevar mainīt neviens iebrucējs, jo String objekti ir nemainīgi. Tas var padarīt lietojumprogrammu drošāku.

4. Kaudzes vieta:

String nemainība palīdz samazināt kaudzes atmiņas izmantošanu. Kad mēs cenšamies deklarēt jaunu String objektu, JVM pārbauda, ​​vai vērtība jau pastāv virknes pūlā. Ja tāda pastāv, jaunajam objektam tiek piešķirta tāda pati vērtība. Šī funkcija ļauj Java efektīvi izmantot kaudzes vietu.

Kāpēc stīgu klase Java ir galīga?

Iemesls, kāpēc stīgu klase ir galīga, ir tāpēc, ka neviens nevar ignorēt stīgu klases metodes. Lai tā varētu nodrošināt tādas pašas funkcijas gan jaunajiem String objektiem, gan vecajiem objektiem.