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.
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.