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.
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
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.
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 ().
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 ().
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. |
Ú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.
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
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