Võrdluskaart
Võrdluse alus | String | StringBuffer |
---|---|---|
Põhiline | Stringobjekti pikkus on fikseeritud. | StringBufferi pikkust saab suurendada. |
Muudatus | Stringobjekt on muutumatu. | StringBufferi objekt on muutuv. |
Toimivus | See on konkatenatsiooni ajal aeglasem. | See on konkatenatsiooni ajal kiirem. |
Mälu | Tarbib rohkem mälu. | Kulub vähem mälu. |
Ladustamine | String konstantne bassein. | Heap mälu. |
Stringi määratlus
„String” on Java-klass. Klassi String objektiks on fikseeritud pikkus ja kõige tähtsam meeles pidada, et stringklassi objekt on “muutumatu”. Kui olete stringi objekti vormindanud, ei saa te seda objekti uuesti muuta. Klassi String objekt salvestatakse String konstantses kogumis.
Mõelgem kõigepealt, et kui loote ühtegi stringit; luuakse tüübistringi objekt. Stringikonstandid on ka stringid.
System.out.println ("Tere see on Teckpixi lahendus");
Ülaltoodud avalduses on string “Hello this is Teckpix Solution” stringi konstant.
Nüüd saame mõista stringi objekti sobivust näite abil.
String str = uus string ("Teckpix"); str.concat ("Lahendus"); system.out.println (str); // väljund Teckpix
Ülaltoodud koodis püüdsin ma siduda kaks stringi "Teckpix" ja "Solution". Nagu me teame, kui luuakse string, mis tähendab, et luuakse String tüüpi tüüp. Seega loob string “Teckpix” objekti, mille viide on määratud stringiobjektile “str”. Seejärel püüdsin ma ühendada teise stringi "Lahendus" stringiga "Teckpix", kasutades klassi String "concat ()" meetodit.
StringBufferi määratlus
Klass “StringBuffer” on klassi „String” peer klass. StringBufferi klass pakub stringidele rohkem funktsionaalsust. StringBufferi klassi objekt on muutuv, mis on selle objektiks võimalik muuta. StringBufferi objekti pikkus on kasvav. StringBufferi objektile või selle lõpus määratud sümbolite keskele võib sisestada märgid või alamrubriigid. StringBuffer eraldab ruumi 16 täiendavale tähemärgile, kui konkreetset pikkust ei nõuta.
Mõistkem StringBufferi objekti sobivust näite abil:
StringBuffre Sb = uus StringBuffer ("Teckpix"); Sb.append ("Lahendus"); system.out.println (Sb); // Väljund Teckpix lahendus
Nagu me teame, on StringBufferi objekt muutuv. Meetodi lisamine () muudab StringBufferi objekti Sb, millele algselt objekt „Teckpix” on varem määratud. Meetodi lisamine () lisab stringi kirjakeele “Teckpix” lõpuni uue stringi „Lahendus”. Nüüd, kui ma printin objekti Sb, prindib see modifitseeritud stringiobjekti “Teckpix Solutions”.
Stringi ja StringBufferi peamine erinevus
- Stringobjekti pikkus on fikseeritud, kuid StringBufferi objekti pikkust saab vajadusel suurendada.
- Stringobjekt on muutumatu, st selle objekti ei saa uuesti määrata, kuna StringBufferi objekt on muutuv.
- Stringobjekt on jõudluses aeglasem, samas kui StringBufferi objekt on kiirem.
- Stringobjekt tarbib rohkem mälu, StringBufferi objektid tarbivad vähem mälu.
- Stringobjektid salvestatakse püsivasse basseini, samas kui StringBufferi objektid salvestatakse kasumimällu.
Järeldus:
StringBufferi objektid pakuvad stringidele rohkem funktsionaalsust kui klass String. Seega on parem StringBufferiga töötada klassi String asemel.