Összehasonlító táblázat
Az összehasonlítás alapja | Húr | StringBuffer |
---|---|---|
Alapvető | A String objektum hossza rögzítve van. | A StringBuffer hossza növelhető. |
Módosítás | A string objektum változhatatlan. | A StringBuffer objektum módosítható. |
Teljesítmény | Lassabb az összefűzés során. | Gyorsabb az összefűzés során. |
memória | Több memóriát fogyaszt. | Kevesebb memóriát fogyaszt. |
Tárolás | String állandó medence. | Halom memória. |
A karakterlánc meghatározása
A „String” egy Java osztály. A String-osztály tárgya rögzített hosszúságú, és a legfontosabb, hogy emlékezzünk rá, hogy a String osztály tárgya „megváltoztathatatlan”. A String objektum inicializálása után nem módosíthatja újra az objektumot. A String karakterlánc objektumát a String állandó tárolója tárolja.
Először értsük meg, hogy ha bármilyen karakterláncot hoz létre; létrehoz egy típusú karakterláncot. A karakterlánc-konstansok is karakterlánc objektumok.
System.out.println ("Hello ez a Teckpix megoldás");
A fenti állításban a „Hello this is Teckpix Solution” karakterlánc konstans.
Most egy példa segítségével megértsük a String objektum mutálhatóságát.
Str = str = új karakterlánc ("Teckpix"); str.concat ( "megoldás"); system.out.println (str); // kimenet Teckpix
A fenti kódon belül megpróbáltam összekapcsolni a két „Teckpix” és „Solution” sztringet. Mint tudjuk, hogy amikor egy karakterláncot hozunk létre, akkor a String típus típusa jön létre. Ezért a „Teckpix” karakterlánc létrehoz egy objektumot, amelynek hivatkozása a „str” karakterlánc objektumhoz van rendelve. Ezután megpróbáltam egy másik „Solution” karakterláncot összevetni a „Teckpix” karakterlánc sztring „concat ()” módszerével.
A StringBuffer meghatározása
A „StringBuffer” osztály a „String” osztály osztálytársa. A StringBuffer osztály több funkciót biztosít a karakterláncoknak. A StringBuffer osztály objektuma mutálható, azaz annak objektuma módosítható. A StringBuffer objektum hossza növekszik. A karaktereket vagy szubsztrátumokat a StringBuffer objektumhoz hozzárendelt karakterláncok közepére vagy annak végén helyezheti el. A StringBuffer 16 további karakter számára ad helyet, ha nincs meghatározott hosszúság.
Egy példa segítségével megértsük a StringBuffer objektum mutativitását:
StringBuffre Sb = új StringBuffer ("Teckpix"); Sb.append ( "megoldás"); system.out.println (Sb); // Kimeneti Teckpix megoldás
Mint tudjuk, a StringBuffer objektum változó. A () metódus módosítja a StringBuffer Sb objektumot, amelyhez először a „Teckpix” objektum hivatkozása van hozzárendelve. A metódus hozzáadásával () hozzáadjuk az új karakterláncú „Solution” szót a „Teckpix” karakterlánc végéhez. Most, amikor kinyomtatom az Sb objektumot, kinyomtatja a „Teckpix Solutions” módosított string objektumot.
A String és a StringBuffer közötti különbség
- A String objektum hossza rögzítve van, de a StringBuffer objektumának hossza szükség esetén növelhető.
- A sztring objektum megváltoztathatatlan, azaz az objektumot nem lehet újra átcsoportosítani, míg a StringBuffer objektuma változhat.
- A karakterlánc objektum lassabb a teljesítményben, míg a StringBuffer objektum gyorsabb.
- A sztringobjektum több memóriát fogyaszt, míg a StringBuffer objektumok kevesebb memóriát fogyasztanak.
- A karakterlánc objektumokat egy állandó tárolóban tárolják, míg a StringBuffer objektumok a halom memóriájában tárolódnak.
Következtetés:
A StringBuffer objektumok a String-hez képest több funkciót biztosítanak a karakterláncokhoz. Ezért előnyösebb, ha StringBufferrel dolgozunk, nem a String karakterlánc helyett.