A String StringBuffer és a StringBuilder közötti különbség a Java nyelven

Tartalomjegyzék:

A String StringBuffer és a StringBuilder közötti különbség a Java nyelven
A String StringBuffer és a StringBuilder közötti különbség a Java nyelven

Videó: A String StringBuffer és a StringBuilder közötti különbség a Java nyelven

Videó: A String StringBuffer és a StringBuilder közötti különbség a Java nyelven
Videó: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, November
Anonim

Kulcskülönbség – String vs StringBuffer vs StringBuilder Java-ban

A String, a StringBuffer és a String Builder a Java osztályai. A karakterláncot széles körben használják a Java programozásban. A String objektum létrehozása után nem lehet módosítani. Minden alkalommal, amikor változás történik a karakterláncban, az új karakterláncot hoz létre. Még akkor is, ha ez egy meglévő karakterlánc összefűzése, új karakterláncot hoz létre. Ez memóriaveszteséget okoz. A Java StringBuffer és StringBuilder osztályai a String módosítására szolgálnak. A legfontosabb különbség a String, a StringBuffer és a StringBuilder között Javaban az, hogy a String egy olyan osztály, amely egy karaktersorozatból álló String típusú objektumot hoz létre, a StringBuffer egy olyan osztály, amely a Stringek módosítására szolgál, és amely biztosítja a szálak biztonságát, a StringBuilder pedig egy karaktersorozat. osztály, amely a szálbiztonságot nem biztosító karakterláncok módosítására szolgál.

Mi a String a Java nyelvben?

A string osztály a java.lang csomagban található. Minden alkalommal, amikor a programozó létrehoz egy karakterláncot, az egy String típusú objektum. A karakterláncok megváltoztathatatlan jelentéssel bírnak, miután az objektumot létrehozták, azt nem lehet megváltoztatni. Az olyan wrapper osztályokkal létrehozott objektumok is megváltoztathatatlanok, mint az Integer, Byte, Float, Double. A karakterlánc-literál kettős idézőjelbe van zárva. például. "Helló Világ". Minden egyes karakterlánc-literál létrehozásakor a Java virtuális gép (JVM) ellenőrzi a String konstans készletet. Ha a karakterlánc létezik, a String konstans készletre való hivatkozás kerül visszaadásra. Ha ez egy új karakterlánc, akkor az objektum a String konstans készletben jön létre.

Különbség a String StringBuffer és a StringBuilder között Java-ban
Különbség a String StringBuffer és a StringBuilder között Java-ban
Különbség a String StringBuffer és a StringBuilder között Java-ban
Különbség a String StringBuffer és a StringBuilder között Java-ban

01. ábra: Java program String, StringBuffer és StringBuilder használatával

Olvassa el az alábbi kódrészletet.

String s1=“Helló”;

s1=s1 + „Világ”;

System.out.println(s1);

Az első utasításban az s1 a „Hello”-ra utal a String konstans készletben. A második utasításban a JVM nem módosítja a meglévő karakterláncot. Ehelyett egy új karakterláncot hoz létre „Hello World” néven, és az s1 most erre az új karakterláncra utal. A kilépő „Hello” objektum továbbra is létezik a String konstans készletben.

Ha van olyan kód, amely a következő:

String s1=”Hello”;

String s2=s1;

s1, s2 mindkettő a „Hello” String objektumra fog hivatkozni.

Mi az a StringBuffer a Java-ban?

A StringBuffer osztály a String objektumok megváltoztathatóvá tételére szolgál. Ezért ezek az objektumok módosíthatók. A StringBuffer négy konstruktort határoz meg. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Lásd az alábbi kódot, StringBuffer s1=new StringBuffer(“Hello”);

s1.append(“Világ”);

System.out.println(s1);

Az 1. utasításban az s1 a halomban lévő „Hello” objektumra utal. Az objektum változtatható, mert a StringBuffer használatával jött létre. A 2. utasításban a „World” ugyanahhoz a „Hello” String objektumhoz van hozzáfűzve.

A StringBuffer osztállyal létrehozott string objektumok memóriát takaríthatnak meg. A StringBuffer szálbiztonságot nyújt, mivel két szál nem férhet hozzá egyszerre ugyanahhoz a StringBuffer osztály metódusához. A szálbiztonság csökkenti a StringBuffer teljesítményét. A StringBuffer osztály olyan metódusokat tartalmaz, mint az append(), insert(), reverse(), csere().

Mi az a StringBuilder a Java nyelven?

A StringBuilder osztály a String objektumok megváltoztathatóvá tételére szolgál. Ezért ezek az objektumok módosíthatók. A funkció hasonló a StringBufferhez, de ez nem nyújt szálbiztonságot. A StringBuilder olyan konstruktorokkal rendelkezik, mint a StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Lásd az alábbi kódot.

StringBuilder s1=new StringBuilder(“Hello”);

s1.append(“Világ”);

System.out.println(s1);

Az 1. utasításban az s1 a halomban lévő „Hello” objektumra utal. Az objektum módosítható, mert a StringBuilder segítségével jött létre. A 2. utasításban a „World” ugyanahhoz a „Hello” String objektumhoz van hozzáfűzve. Nincs teljesen új String objektum létrehozása.

A StringBuilder osztállyal létrehozott karakterlánc-objektumok memóriát takaríthatnak meg. A StringBuffertől eltérően a StringBuilder nem nyújt szálbiztonságot, mivel két szál egyszerre érheti el ugyanazt a metódust a StringBuilder osztályban. A StringBuilder osztály olyan metódusokat tartalmaz, mint az append(), insert(), reverse(), csere().

Mi a hasonlóság a String, a StringBuffer és a StringBuilder között Javaban?

Mind használható karakterláncok létrehozására

Mi a különbség a String StringBuffer és a StringBuilder között Javaban?

String vs StringBuffer vs StringBuilder

String A karakterlánc egy Java osztály, amelyet egy String típusú objektum létrehozására használnak, amely karaktersorozat.
StringBuffer A StringBuffer egy Java osztály, amelyet String objektumok létrehozására használnak, amelyek szálbiztonsággal módosíthatók.
StringBuilder A StringBuilder egy olyan osztály, amely karakterlánc-objektumok létrehozására szolgál, amelyek szálbiztonság nélkül módosíthatók.
Mutability
String A karakterlánc egy megváltoztathatatlan osztály.
StringBuffer A StringBuffer egy változtatható osztály.
StringBuilder A StringBuilder egy változtatható osztály.
Szálbiztonság
String A String metódusai szálbiztosak.
StringBuffer A StringBuffer módszerei szálbiztosak és szinkronizáltak.
StringBuilder A StringBuilder módszerei nincsenek biztonságosan befűzve és nincsenek szinkronizálva.
Teljesítmény
String A karakterlánc gyors.
StringBuffer A StringBuffer lassú.
StringBuilder A StringBuilder gyors.

Összefoglaló – String vs StringBuffer vs StringBuilder Java-ban

A String, a StringBuffer és a StringBuilder azonosnak tűnik, de eltérő jelentéssel bírnak. Ezek mind Java osztályok. A String, a StringBuffer és a StringBuilder közötti különbség Javaban az, hogy a String egy String típusú objektum létrehozására szolgáló osztály, amely karakterkészlet, a StringBuffer pedig egy olyan osztály, amely a karakterláncok módosítására és a szálak biztonságára szolgál, míg a StringBuilder egy osztály, amelyet olyan karakterláncok módosítására használnak, amelyek nem biztosítanak szálbiztonságot.

A PDF String vs StringBuffer vs StringBuilder letöltése Java-ban

Letöltheti ennek a cikknek a PDF-verzióját, és offline célokra használhatja az idézet jegyzetének megfelelően. Kérjük, töltse le a PDF-verziót innen A String StringBuffer és a StringBuilder közötti különbség Java-ban

Ajánlott: