Fő különbség - String vs StringBuffer vs StringBuilder a 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. Miután létrehozta a String objektumot, 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 ez egy összefűzés is egy meglévő húrhoz, új húrot hoz létre. Ez memóriapazarlást okoz. A StringBuffer és a StringBuilder osztályok a Java-ban 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 a Java-ban az, hogy a String egy osztály egy String típusú objektum létrehozására, amely egy karaktersorozat, a StringBuffer egy olyan osztály, amelyet a Strings módosítására használnak, ami szálbiztonságot nyújt, a StringBuilder pedig egy osztály, amelyet a szálbiztonságot nem biztosító húrok módosítására használnak.
TARTALOM
1. Áttekintés és kulcsfontosságú különbségek
2. Mi a String a Java-ban
3. Mi a StringBuffer a Java-ban
4. Mi a StringBuilder a Java-ban
5. A StringBuffer és a StringBuilder Java közötti hasonlóságok
6. Egymás melletti összehasonlítás - String vs StringBuffer vs StringBuilder itt: Java táblázatos formában
7. Összegzés
Mi a karakterlánc a Java-ban?
A karakterlánc osztály java.lang csomagban van. Minden alkalommal, amikor a programozó létrehoz egy stringet, ez egy String típusú objektum. A karakterláncok az objektum létrehozása után megváltoztathatatlanok, és nem változtathatók meg. Az olyan burkoló osztályokkal létrehozott objektumok, mint az Integer, Byte, Float, Double, szintén változhatatlanok. A karakterlánc betűs része dupla idézőjelek között szerepel. pl. „Hello World”. Minden egyes karakterlánc-szó létrehozásakor a Java virtuális gép (JVM) ellenőrzi a karakterlánc konstans készletét. Ha a karakterlánc létezik, akkor a String konstans készletre való hivatkozás visszatér. Ha új karakterláncról van szó, akkor az objektum a String konstans készletben jön létre.
01. ábra: Java program a String, StringBuffer és StringBuilder használatával
Lásd az alábbi kódrészletet.
String s1 = “Hello”;
s1 = s1 + „Világ”;
System.out.println (s1);
Az első utasításban az s1 a String konstans készlet „Hello” -jára utal. A második utasításban a JVM nem változtatja meg a meglévő karakterláncot. Ehelyett létrehoz egy új karakterláncot „Hello World” néven, és az s1 most hivatkozik erre az új karakterláncra. A kilépő „Hello” objektum továbbra is létezik a String konstans készletben.
Ha van egy kód, String s1 = “Hello”;
Karakterlánc s2 = s1;
s1, s2 mindkettő a „Hello” karakterlánc objektumra utal.
Mi a StringBuffer a Java-ban?
A StringBuffer osztály a String objektumok vá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 méret), StringBuffer (String str), StringBuffer (charSequence ch)
Lásd az alábbi kódot, StringBuffer s1 = új StringBuffer (“Hello”);
s1.append („Világ”);
System.out.println (s1);
Az 1. utasításban az s1 a halom „Hello” objektumára utal. Az objektum azért változtatható, mert a StringBuffer használatával jött létre. A 2. nyilatkozatban a „Világ” ugyanahhoz a „Hello” karakterlánc objektumhoz van csatolva.
A StringBuffer osztállyal létrehozott karakterlánc-objektumok memóriát takaríthatnak meg. A StringBuffer szálbiztonságot nyújt, mivel két szál egyszerre nem férhet hozzá ugyanahhoz a módszerhez a StringBuffer osztályban. Menetbiztonság csökken a StringBuffer teljesítményében. A StringBuffer osztály olyan módszereket tartalmaz, mint az append (), insert (), reverse (), cseréje ().
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 StringBufferhez, de ez nem nyújt szálbiztonságot. 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 („Világ”);
System.out.println (s1);
Az 1. utasításban az s1 a halom „Hello” objektumára utal. Az objektum azért változtatható, mert a StringBuilder használatával jött létre. A 2. nyilatkozatban a „Világ” ugyanahhoz a „Hello” karakterlánc objektumhoz van csatolva. Nincs teljesen új String objektum létrehozása.
A StringBuilder osztály segítségével létrehozott karakterlánc-objektumok memóriát takaríthatnak meg. A StringBuffer-től eltérően a StringBuilder nem nyújt szálbiztonságot, mert két szál egyszerre érheti el ugyanazt a módszert a StringBuilder osztályban. A StringBuilder osztály olyan módszereket tartalmaz, mint az append (), insert (), reverse (), cseréje ().
Mi a hasonlóság a String, a StringBuffer és a StringBuilder között a Java-ban?
Mindez felhasználható karakterláncok létrehozására
Mi a különbség a String StringBuffer és a StringBuilder között a Java-ban?
Különböző cikk a táblázat előtt
String vs StringBuffer vs StringBuilder |
|
Húr | A karakterlánc egy Java osztály, amelyet String típusú objektum létrehozására használnak, amely egy 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, amelyet karakterlánc objektumok létrehozására használnak, amelyek a szál biztonsága nélkül módosíthatók. |
Változtathatóság | |
Húr | A húr változhatatlan osztály. |
StringBuffer | A StringBuffer egy változtatható osztály. |
StringBuilder | A StringBuilder egy módosítható osztály. |
Menetbiztonság | |
Húr | A húr módszerei szálbiztosak. |
StringBuffer | A StringBuffer módszerei szálbiztosak és szinkronizáltak. |
StringBuilder | A StringBuilder metódusai nincsenek biztonságos szálon és nem szinkronizálva. |
Teljesítmény | |
Húr | A húr gyors. |
StringBuffer | A StringBuffer lassú. |
StringBuilder | A StringBuilder gyors. |
Összegzés - String vs StringBuffer vs StringBuilder a Java-ban
Úgy tűnik, hogy a String, a StringBuffer és a StringBuilder azonos, de különböző jelentése van. Ezek mind Java osztályok. A Java közötti String, StringBuffer és StringBuilder között az a különbség, hogy a String osztály egy String típusú objektum létrehozására, amely egy karakterkészlet, a StringBuffer egy olyan osztály, amelyet a karakterláncok módosítására és a szálbiztonság biztosítására használnak, míg a StringBuilder egy osztály, amelyet a húrok módosítására használnak, amelyek nem biztosítják a menet biztonságát.
Töltse le a Java String vs StringBuffer vs StringBuilder fájlt
A cikk PDF-verzióját letöltheti, és offline célokra is használhatja, az idézési megjegyzés szerint. Kérjük, töltse le itt a PDF verziót. Különbség a String StringBuffer és a Java StringBuilder között