logo

Megváltozhatatlan karakterlánc Java-ban

A karakterlánc egy elkerülhetetlen típusú változó bármely alkalmazási program írásakor. A karakterlánc-hivatkozások különféle attribútumok, például felhasználónév, jelszó stb. tárolására szolgálnak. Java nyelven A karakterlánc objektumok megváltoztathatatlanok . A megváltoztathatatlan egyszerűen azt jelenti, hogy módosíthatatlan vagy megváltoztathatatlan.

mutasd meg a felhasználóknak a mysql-t

A String objektum létrehozása után annak adatai vagy állapota nem módosítható, de létrejön egy új String objektum.

Próbáljuk megérteni a megváltoztathatatlanság fogalmát az alábbi példán keresztül:

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 } } 
Tesztelje most

Kimenet:

 Sachin 

Most az alábbi ábrán látható. Itt a Sachin nem változik, hanem egy új objektum jön létre a Sachin Tendulkar segítségével. Ezért a Stringet megváltoztathatatlannak nevezik.

Megváltozhatatlan karakterlánc Java-ban

Amint a fenti ábrán látható, két objektum jön létre, de s a referenciaváltozó továbbra is a 'Sachin'-ra utal, nem a 'Sachin Tendulkar'-ra.

De ha kifejezetten hozzárendeljük a referenciaváltozóhoz, akkor a „Sachin Tendulkar” objektumra fog hivatkozni.

Például:

string.compare c#

Testimmutablestring1.java

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

Kimenet:

 Sachin Tendulkar 

Ilyen esetben s a „Sachin Tendulkar”-ra mutat. Kérjük, vegye figyelembe, hogy a Sachin objektum továbbra sem módosult.

Miért változtathatatlanok a String objektumok a Java-ban?

Ahogy a Java a String literal fogalmát használja. Tegyük fel, hogy 5 referenciaváltozó létezik, és mindegyik egy „Sachin” objektumra hivatkozik. Ha egy referenciaváltozó megváltoztatja az objektum értékét, az összes referenciaváltozó hatással lesz rá. Ezért a String objektumok megváltoztathatatlanok a Java nyelvben.

önts sql-t

Az alábbiakban a String néhány olyan jellemzője látható, amelyek megváltoztathatatlanná teszik a String objektumokat.

1. Osztálybetöltő:

A Java ClassLoader egy String objektumot használ argumentumként. Vegye figyelembe, hogy ha a String objektum módosítható, akkor az érték megváltozhat, és a betölteni kívánt osztály eltérő lehet.

Az ilyen félreértelmezés elkerülése érdekében a String megváltoztathatatlan.

2. Szálbiztos:

Mivel a String objektum megváltoztathatatlan, nem kell gondoskodnunk a szinkronizálásról, amely akkor szükséges, ha egy objektumot több szálon osztunk meg.

a fejlesztői mód kikapcsolása

3. Biztonság:

Ahogy az osztálybetöltésnél láttuk, a megváltoztathatatlan String objektumok elkerülik a további hibákat a megfelelő osztály betöltésével. Ez az alkalmazási program biztonságosabbá tételéhez vezet. Vegyünk egy példát a banki szoftverre. A felhasználónevet és a jelszót egyetlen behatoló sem módosíthatja, mert a String objektumok megváltoztathatatlanok. Ez biztonságosabbá teheti az alkalmazási programot.

4. Halomterület:

A String megváltoztathatatlansága segít minimalizálni a kupacmemória használatát. Amikor megpróbálunk deklarálni egy új String objektumot, a JVM ellenőrzi, hogy az érték már létezik-e a String készletben vagy sem. Ha létezik, ugyanaz az érték lesz hozzárendelve az új objektumhoz. Ez a funkció lehetővé teszi a Java számára a halomterület hatékony felhasználását.

Miért a String osztály végleges a Java-ban?

A String osztály véglegességének oka, hogy senki sem tudja felülírni a String osztály metódusait. Hogy ugyanazokat a funkciókat tudja biztosítani az új String objektumokhoz és a régiekhez.