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

Fő különbség - karakterlánc vs StringBuffer vs StringBuilder Java-ban
 

A String, a StringBuffer és a String Builder osztályok a Java-ban. A húrokat széles körben használják a Java programozásban. Miután létrehozta a Karakterlánc objektumát, nem lehet megváltoztatni őket. Minden alkalommal, amikor változás történik a karakterláncon, új karakterláncot hoz létre. Még ha egy létező karakterlánc összekapcsolása is, akkor új karakterláncot hoz létre. Ez memória pazarlást okoz. A StringBuffer és a StringBuilder Java osztályok a String módosítására szolgálnak. Az kulcs különbség a String, a StringBuffer és a StringBuilder között a Java-ban ez az A String egy osztály, amely a String típusú objektum létrehozására szolgál, amely karaktersor, a StringBuffer egy osztály, amelyet a szál biztonságát nyújtó Strings módosítására használnak, a StringBuilder pedig egy olyan osztályt, amelyet olyan sztringek módosítására használnak, amelyek nem biztosítják a szál biztonságát.

TARTALOMJEGYZÉK

1. Áttekintés és a legfontosabb különbség
2. Mi a karakterlánc a Java-ban?
3. Mi a StringBuffer a Java-ban?
4. Mi a StringBuilder a Java-ban?
5. hasonlóságok a StringBuffer és a StringBuilder között a Java-ban
6. Összehasonlítás - String vs StringBuffer vs StringBuilder Java táblázatos formában
7. Összegzés

Mi a karakterlánc a Java-ban??

A húros osztály a java.lang csomagban található. Minden alkalommal, amikor a programozó létrehoz egy karakterláncot, ez egy karakterlánc típusú objektum. A karakterláncok változatlan jelentéssel bírnak, miután az objektum létrehozásra került, azt nem lehet megváltoztatni. A csomagoló osztályok, például az Integer, Byte, Float, Double használatával létrehozott objektumok szintén változatlanok. A karakterláncot idézőjelekbe kell beilleszteni. például. "Helló Világ". Minden alkalommal, amikor egy karakterláncot létrehoznak, a Java virtuális gép (JVM) ellenőrzi a karakterlánc állandó készletét. Ha a karakterlánc létezik, akkor a hivatkozás a karakterlánc állandó készletére kerül vissza. Ha ez egy új karakterlánc, akkor az objektum a karakterlánc állandó készletében jön létre.

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

Lásd az alábbi kóddarabot.

Karakterlánc s1 = “Hello”;

s1 = s1 + „világ”;

System.out.println (s1);

Az első állításban az s1 a „Hello” -ra utal a String állandó készletben. A második állításban a JVM nem változtatja meg a meglévő karakterláncot. Ehelyett létrehoz egy új karakterláncot, mint „Hello World”, és az s1 most arra az új karakterláncra utal. A kilépő „Hello” objektum továbbra is fennáll a String állandó készletben.

Ha van egy kód, amely,

Karakterlánc s1 = “Hello”;

Karakterlánc s2 = s1;

Az s1, s2 mindkettő a „Hello” karakterlánc-objektumra utal.

Mi a StringBuffer a Java-ban??

A StringBuffer osztály arra szolgál, hogy a String objektumok módosíthatóak legyenek. Ezért ezek az objektumok módosíthatók. A StringBuffer négy konstruktort határoz meg. StringBuffer (), StringBuffer (belső méret), StringBuffer (String str), StringBuffer (charSequence [] ch)

Lásd az alábbi kódot,

StringBuffer s1 = új StringBuffer (“Hello”);

s1.append ( „World”);

System.out.println (s1);

Az 1. állításban az s1 egy halom „Hello” objektumra utal. Az objektum módosítható, mert a StringBuffer használatával készült. A 2. állításban a „Világ” ugyanahhoz a „Hello” karakterlánc-objektumhoz van csatolva.

A StringBuffer osztályban létrehozott karakterláncobjektumok memóriát takaríthatnak meg. A StringBuffer biztosítja a szál biztonságát, mivel két szál nem férhet hozzá ugyanahhoz a módszerhez a StringBuffer osztályban egyszerre. A menetbiztonság csökken a StringBuffer teljesítményén. A StringBuffer osztály olyan módszereket tartalmaz, mint a függelék (), a beszúrás (), a fordított (), a helyettesítés ().

Mi a StringBuilder a Java-ban??

A StringBuilder osztály a String objektumok változtathatóvá tételére szolgál. Ezért ezek az objektumok módosíthatók. A funkcionalitás hasonló a StringBuffer-hez, de ez nem biztosítja a szál biztonságát. A StringBuilder olyan konstruktorokkal rendelkezik, mint a StringBuilder (), StringBuilder (int méret), StringBuilder (String str).

Lásd az alábbi kódot.

StringBuilder s1 = új StringBuilder (“Hello”);

s1.append ( „World”);

System.out.println (s1);

Az 1. állításban az s1 egy halom „Hello” objektumra utal. Az objektum módosítható, mert a StringBuilder használatával készült. A 2. állításban a „Világ” ugyanahhoz a „Hello” karakterlánc-objektumhoz van csatolva. Nincs teljesen új karakterlánc-objektum létrehozása.

A StringBuilder osztályban létrehozott karakterláncobjektumok memóriát takaríthatnak meg. A StringBuffer-rel ellentétben a StringBuilder nem nyújt szálbiztonságot, mivel két szál egyidejűleg érheti el ugyanazt a módszert a StringBuilder osztályban. A StringBuilder osztály olyan módszereket tartalmaz, mint a függelék (), a beszúrás (), a fordított (), a helyettesítés ().

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

  • Minden felhasználható húrok létrehozására.

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

String vs StringBuffer vs StringBuilder

Húr A karakterlánc egy Java osztály, amelyet a String típusú objektum létrehozására használnak, amely karakter sorozat.
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 osztály, amelyet karakterláncobjektumok létrehozására használnak, amelyeket szálbiztonság nélkül lehet módosítani.
mutability
Húr A karakterlánc változatlan osztály.
StringBuffer A StringBuffer változtatható osztály.
StringBuilder A StringBuilder változó osztály.
Menetbiztonság
Húr A húrozási módszerek szálbiztosak.
StringBuffer A StringBuffer módszerei biztonságosak és szinkronizáltak.
StringBuilder A StringBuilder módszerei nem biztonságos menetek, és nem vannak szinkronizálva.
Teljesítmény
Húr A húr gyors.
StringBuffer A StringBuffer lassú.
StringBuilder A StringBuilder gyors.

Összegzés - karakterlánc vs StringBuffer vs StringBuilder Java-ban 

Úgy tűnik, hogy a String, a StringBuffer és a StringBuilder ugyanazok, de eltérő jelentéssel bírnak. Ezek mind Java osztályok. A különbség a String, a StringBuffer és a StringBuilder között Java-ban az, hogy a String osztály létrehoz egy String típusú objektumot, amely karakterkészlet, a StringBuffer pedig egy osztály, amelyet a Strings módosítására és a szál biztonságának biztosítására használnak, míg a StringBuilder egy osztály, amelyet a Strings módosításához használnak, amely nem biztosítja a szál biztonságát.

Töltse le a PDF String vs StringBuffer vs StringBuilder fájlt a Java alkalmazásban

Letöltheti e cikk PDF verzióját, és offline célokra felhasználhatja, az idézet megjegyzésének megfelelően. Kérjük, töltse le itt a PDF verziót. Különbség a StringBuffer és a StringBuilder között a Java-ban

Referencia:

1. “String vs StringBuffer vs StringBuilder.” JournalDev, 2017. július 30. Itt érhető el
2. „Java éhes”. Különbség a String, StringBuilder és StringBuffer osztályok között példa szerint: Java | Java éhes. Itt érhető el 
3.tutorialspoint.com. „Java karakterláncok”. A lényeg. Itt érhető el