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