Mit kell tudni a karakterláncok használatáról a Java -ban

Mit kell tudni a karakterláncok használatáról a Java -ban

Amint elkezdi tanulni a Java -t, a String osztály egyedülálló tulajdonságainak köszönhetően leköti a figyelmét.





Más nyelveknél könnyebben hozhat létre és kezelhet karakterláncokat Java nyelven. Ez azért van, mert a String osztály különféle funkciókat kínál.





Ezen jellemzők alapján számos módszer létezik a karakterláncok létrehozására és szerkesztésére, az Ön preferenciáitól és igényeitől függően. Hasonlóképpen sok múlik az alkalmazástól és attól, hogy hol kell használni a karakterláncokat.





Miben különböznek a Java karakterláncok?

Ha korábban dolgozott C nyelvvel, tudja, hogy a C karakterláncok tömbje karakterek (karakterek). Másrészt a Java karakterláncok megváltoztathatatlanok és Unicode karaktereket tartalmaznak.

hogyan lehet átlátszó hátteret kapni

A Java -ban lévő karakterláncok egyik legfontosabb jellemzője az összefűzés. Csak használja a hozzáadás operátort + két vagy több karakterlánc összekapcsolásához. Ezt nem teheti meg más Java objektumokkal, például Pont vagy Kör .



Továbbá, mint korábban említettük, a Java karakterláncok megváltoztathatatlanok, azaz nem módosíthatja őket. Például olyan módszerek, mint toUpperCase () és toLowerCase () generáljon egy teljesen új karakterláncot, ahelyett, hogy módosítaná a meglévő karakterlánc tartalmát. Most a kód visszaadja ezt az újonnan létrehozott karakterláncot.

Kapcsolódó: Hogyan lehet manipulálni a szöveget PHP -ben ezekkel a funkciókkal





Egy másik terület, ahol a karakterláncok eltérnek egymástól, amikor null karaktereket használnak a karakterláncok befejezéséhez olyan nyelveken, mint a C. A Java -ban a karakterláncok karakterek által támogatott objektumok. Ha a karakterlánc tartalmát úgy szeretné olvasni, ahogyan a karakter tömbök ábrázolják, használja a toCharArray () módszer elvégzi a feladatot.

A karakterláncok összehasonlítása Java -ban is kényelmesebb, mint más programozási nyelveken. Ahelyett, hogy hosszú kódblokkot írna a karakterláncok összehasonlítására, használhatja a egyenlő () módszer bármely programban használt két vagy több karakterlánc összehasonlítására. Ez főleg azért van, mert Java -ban a egyenlő metódust felülírja a String osztály, ami a karakterláncok összehasonlítását süteménydarabká teszi.





Hasonló megjegyzés, a Java-ban az alláncokban keresés is problémamentes. A reguláris kifejezések használata közben vagy olyan módszerek lastIndexOf () és indexe(), kereshet a karakterláncok szegmenseiben és a visszatérési értékekben, ha egyezést talál. Rendszeres kifejezéseket is használhat a különböző karakterláncok vágására és felosztására, és külön -külön is felhasználhatja őket bármilyen programban.

Hogyan tárolódnak a húrok a memóriában?

Most, hogy tudja, mitől különbözőek és előnyösek a Java karakterláncai, fedezzük fel a String osztályt. Ha tud egy -két dolgot a memóriakezelésről a Java -ban, akkor biztosan foglalkoznia kell annak két kulcsfontosságú entitásával: a halommal és a veremmel.

A verem a Java programok által meghívott folyamatok és műveletek végrehajtására szolgál, míg a kupac a kód hatékony futtatásához és végrehajtásához szükséges tartalmat tárolja. Szóval, hogyan releváns a memóriakezelés karakterláncok esetén?

Ez azért van, mert a String osztály és a string literálok a Java -ban eltérő bánásmódban részesülnek. Ez azt jelzi, hogy a karakterlánc -literálok egyedi tárhelyet kapnak a kupac memóriájában, amelyet String Constant Pool -nak neveznek. Ezért, amikor karakterlánc -literálokat használ karakterlánc -objektumok létrehozásához a Java -ban, a String Constant Pool tárolja azokat.

Éppen ellenkezőleg, amikor a új kulcsszó a karakterlánc -objektumok létrehozásához, a Java ugyanúgy kezeli őket, mint bármely más objektumot, és elküldi őket a halomba tárolásra.

String Literals példa

Most, hogy eleget tud a karakterlánc -objektumokról, nézzünk meg egy példát a karakterlánc -literálokra:


public class muostrings {
public static void main(String args[])
{
String himuo = 'Hello World from MUO';
System. out .println (himuo);
}
}

Itt a string literal létrehozta a String objektumot a Hello World tartalommal a MUO -tól. A Java elküldi ezt az objektumot a String Constant Pool -nak.

Az új kulcsszó használata

Használhatja a új kulcsszó karakterlánc objektumok létrehozásához.

A himuo karakterlánc objektumát a MUO Hello World tartalmával egy karakterlánc -literál generálta, és elküldésre kerül a String Constant Pool -ba. Hasonlóképpen karakterlánc -objektumok is létrehozhatók az új kulcsszó használatával az alábbiak szerint:


public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}

A fenti példa a új kulcsszót karakterlánc objektum létrehozásához. Amint azt korábban kifejtettük, a kupacba kerülnek, ahol más változókkal és objektumokkal együtt tárolják, amelyek a program végrehajtására várnak.

Mostanra bizonyára kíváncsi a String Constant Poolra, és joggal. A karakterlánc -tartalom alapján kiosztja a pool területet az objektumoknak. Miután a String Constant Pool objektumokat fogad, megvizsgálja, hogy két objektum pontosan azonos tartalmat tartalmaz -e.

Tárolhat két karakterláncú objektum ugyanazt a tartalmat?

Ha karakterlánc -literált használnak új objektum létrehozásához, a Java Virtual Machine (JVM) áttekinti az objektum tartalmát, és értékeli, hogy létezik -e már a készletben. Ha egy objektum olyan tartalmat tartalmaz, amely már megtalálható a készletben, akkor az objektum hivatkozása az új objektum létrehozása nélkül kerül visszaadásra. Ha létre kell hoznia az új objektumot, meg kell győződnie arról, hogy a tartalom megkülönböztethető és egyedi.

Ha azonban a új kulcsszót, hogy új karakterláncot hozzon létre, azt másképp dolgozzák fel. Amikor a új kulcsszót új karakterlánc létrehozásához, akkor létrejön, függetlenül attól, hogy ugyanazt a tartalmat tartalmazza -e, mint a meglévő karakterlánc.

Ez azt jelzi, hogy a halom memóriában tárolt két meglévő karakterlánc -objektum azonos tartalmat tartalmazhat; ez eltér a String Constant Pool -ban tárolt karakterlánc objektumoktól. Ezt a == operátorral is bizonyíthatja; igaz értéket ad vissza, ha két objektumot azonos fizikai címmel hasonlítunk össze.


public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = 'muo1';
String secondLiteral = 'muo1';
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String('muo2');
String secondKeyword = new String('muo2');
System. out .println(firstKeyword == secondKeyword);
}
}

Most könnyen megértheti a Java karakterláncokat

Ebből a cikkből megtudhatod, hogy a Java karakterláncok hogyan különböznek egymástól, hogyan használhatjuk a karakterláncokat a Java -ban, a memóriakezelést a Java -ban, és egyéb fontos részleteket a karakterláncok működéséről. Értelmezésének tesztelése érdekében miért nem írhat Java programot két karakterlánc összefűzésére?

Részvény Részvény Csipog Email Python tanulása? Íme, hogyan lehet manipulálni a karakterláncokat

A karakterláncok használata és manipulálása a Pythonban nehéznek tűnhet, de megtévesztően egyszerű.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Jáva
A szerzőről Usman Ghani(4 cikk megjelent)

Usman tartalom -marketingszakember, aki számos vállalkozásnak segített organikus növekedésben a digitális platformokon. Szereti a programozást és az írást is, ami azt jelenti, hogy a technikai írást nagyon élvezi. Amikor nem dolgozik, Usman szívesen tölti az időt a tévéműsorok nézésével, a krikett követésével és az adatelemzésről.

Továbbiak Usman Ghani -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide