String StringBufferin ja StringBuilderin ero Javassa

Sisällysluettelo:

String StringBufferin ja StringBuilderin ero Javassa
String StringBufferin ja StringBuilderin ero Javassa

Video: String StringBufferin ja StringBuilderin ero Javassa

Video: String StringBufferin ja StringBuilderin ero Javassa
Video: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Marraskuu
Anonim

Avainero – String vs StringBuffer vs StringBuilder Javassa

String, StringBuffer ja String Builder ovat Java-luokkia. Merkkijonoa käytetään laaj alti Java-ohjelmoinnissa. Kun merkkijono-objekti on luotu, niitä ei ole mahdollista muuttaa. Joka kerta kun merkkijonoon tapahtuu muutos, se luo uuden merkkijonon. Vaikka se olisi ketjutus olemassa olevaan merkkijonoon, se luo uuden merkkijonon. Tämä aiheuttaa muistin hukkaa. Javan StringBuffer- ja StringBuilder-luokkia käytetään Stringin muokkaamiseen. avainero Stringin, StringBufferin ja StringBuilderin välillä Javassa on, että String on luokka, jolla luodaan String-tyyppinen objekti, joka on merkkijono, StringBuffer on luokka, jota käytetään merkkijonojen muokkaamiseen, joka tarjoaa säikeen turvallisuuden, ja StringBuilder on luokkaa, jota käytetään muokkaamaan merkkijonoja, jotka eivät tarjoa lankaturvaa.

Mikä on merkkijono Javassa?

String-luokka on java.lang-paketissa. Joka kerta kun ohjelmoija luo merkkijonon, se on String-tyyppinen objekti. Merkkijonot ovat muuttumattomia, kun objekti on luotu, sitä ei voi muuttaa. Objektit, jotka on luotu käyttämällä kääreluokkia, kuten Integer, Byte, Float, Double, ovat myös muuttumattomia. Merkkijonoliteraali on lainausmerkkien sisällä. esim. "Hei maailma". Joka kerta kun merkkijonoliteraali luodaan, Java-virtuaalikone (JVM) tarkistaa merkkijonon vakiovarannon. Jos merkkijono on olemassa, palautetaan viittaus merkkijonovakiovaraan. Jos se on uusi merkkijono, kyseinen objekti luodaan merkkijonovakiovarastoon.

Ero String StringBufferin ja StringBuilderin välillä Javassa
Ero String StringBufferin ja StringBuilderin välillä Javassa
Ero String StringBufferin ja StringBuilderin välillä Javassa
Ero String StringBufferin ja StringBuilderin välillä Javassa

Kuva 01: Java-ohjelma, joka käyttää Stringiä, StringBufferia ja StringBuilderiä

Katso alla oleva koodi.

String s1="Hei";

s1=s1 + "maailma";

System.out.println(s1);

Ensimmäisessä lauseessa s1 viittaa "Hei" merkkijonovakiovarastoon. Toisessa lauseessa JVM ei muuta olemassa olevaa merkkijonoa. Sen sijaan se luo uuden merkkijonon nimellä "Hello World", ja s1 viittaa nyt tähän uuteen merkkijonoon. Poistuva "Hello"-objekti on edelleen olemassa merkkijonovakiovarannossa.

Jos on koodi, joka on

String s1="Hei";

merkkijono s2=s1;

s1, s2 molemmat viittaavat merkkijono-olioon "Hei".

Mikä on StringBuffer Javassa?

StringBuffer-luokkaa käytetään tekemään merkkijono-objekteista muuttuvia. Siksi näitä objekteja voidaan muokata. StringBuffer määrittelee neljä konstruktoria. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Katso alla oleva koodi, StringBuffer s1=new StringBuffer("Hei");

s1.append("Maailma");

System.out.println(s1);

Käskyssä 1 s1 viittaa "Hei" -objektiin kasassa. Objekti on muuttuva, koska se on luotu StringBufferilla. Lausunnossa 2 "World" on liitetty samaan "Hei"-merkkijono-objektiin.

StringBuffer-luokassa luodut merkkijonoobjektit voivat säästää muistia. StringBuffer tarjoaa säikeen turvallisuuden, koska kaksi säiettä ei voi käyttää samaa menetelmää StringBuffer-luokassa samanaikaisesti. Säikeen turvallisuus heikentää StringBufferin suorituskykyä. StringBuffer-luokka sisältää menetelmiä, kuten append(), insert(), reverse(), korvaa().

Mikä on StringBuilder Javassa?

StringBuilder-luokkaa käytetään tekemään merkkijono-objekteista muuttuvia. Siksi näitä objekteja voidaan muokata. Toiminto on samanlainen kuin StringBuffer, mutta tämä ei tarjoa säikeen turvallisuutta. StringBuilder sisältää rakentajia, kuten StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Katso alla oleva koodi.

StringBuilder s1=uusi StringBuilder("Hei");

s1.append("Maailma");

System.out.println(s1);

Käskyssä 1 s1 viittaa "Hei" -objektiin kasassa. Objekti on muuttuva, koska se on luotu StringBuilderilla. Lausunnossa 2 "World" on liitetty samaan "Hei" String -objektiin. Täysin uutta merkkijono-objektia ei luoda.

StringBuilder-luokassa luodut merkkijonoobjektit voivat säästää muistia. Toisin kuin StringBufferissa, StringBuilder ei tarjoa säikeen turvallisuutta, koska kaksi säiettä voi käyttää samaa menetelmää StringBuilder-luokassa samanaikaisesti. StringBuilder-luokka sisältää menetelmiä, kuten append(), insert(), reverse(), korvaa().

Mikä on samank altaisuus Stringin, StringBufferin ja StringBuilderin välillä Javassa?

Kaikki voidaan käyttää merkkijonojen luomiseen

Mitä eroa on StringBufferilla ja StringBuilderilla Javassa?

String vs StringBuffer vs StringBuilder

String Merkkijono on Java-luokka, jota käytetään luomaan String-tyyppinen objekti, joka on merkkijono.
StringBuffer StringBuffer on Java-luokka, jota käytetään merkkijono-objektien luomiseen, joita voidaan muokata säikeen suojauksella.
StringBuilder StringBuilder on luokka, jota käytetään merkkijonoobjektien luomiseen, joita voidaan muokata ilman säikeen turvallisuutta.
Mutability
String Jojono on muuttumaton luokka.
StringBuffer StringBuffer on muuttuva luokka.
StringBuilder StringBuilder on muuttuva luokka.
Langan turvallisuus
String Methods of String ovat lankaturvallisia.
StringBuffer StringBufferin menetelmät ovat säikeen turvallisia ja synkronoituja.
StringBuilder StringBuilderin menetelmät eivät ole turvallisia säikeistettyjä eivätkä synkronoida.
Suorituskyky
String Jojono on nopea.
StringBuffer StringBuffer on hidas.
StringBuilder StringBuilder on nopea.

Yhteenveto – String vs StringBuffer vs StringBuilder Javassa

String, StringBuffer ja StringBuilder näyttävät olevan samoja, mutta niillä on eri merkitys. Kaikki nämä ovat Java-luokkia. Ero Stringin, StringBufferin ja StringBuilderin välillä Javassa on, että String on luokka, jolla luodaan String-tyyppinen objekti, joka on merkkijoukko, StringBuffer on luokka, jota käytetään merkkijonojen muokkaamiseen ja säikeiden turvallisuuden tarjoamiseen, kun taas StringBuilder on luokka, jota käytetään muokkaamaan merkkijonoja, jotka eivät tarjoa lankaturvaa.

Lataa PDF String vs StringBuffer vs StringBuilder Javassa

Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainaushuomautuksen mukaisesti. Lataa PDF-versio tästä Ero StringBufferin ja StringBuilderin välillä Javassa

Suositeltava: