StringBufferin Ja StringBuilderin Ero Java-ohjelmassa

Sisällysluettelo:

StringBufferin Ja StringBuilderin Ero Java-ohjelmassa
StringBufferin Ja StringBuilderin Ero Java-ohjelmassa

Video: StringBufferin Ja StringBuilderin Ero Java-ohjelmassa

Video: StringBufferin Ja StringBuilderin Ero Java-ohjelmassa
Video: StringBuffer and StringBuilder in Java 2024, Marraskuu
Anonim

Tärkein ero - String vs StringBuffer vs StringBuilder Javalla

String, StringBuffer ja String Builder ovat Java-luokkia. Merkkijonoa käytetään laajalti Java-ohjelmoinnissa. Kun merkkijono-objekti on luotu, niitä ei voida muuttaa. Joka kerta kun merkkijono muuttuu, se luo uuden merkkijonon. Vaikka se olisi ketjuttaminen olemassa olevaan merkkijonoon, se luo uuden merkkijonon. Tämä aiheuttaa muistin tuhlausta. StringBuffer- ja StringBuilder-luokkia Javassa käytetään Stringin muokkaamiseen. Keskeinen ero Stringin, StringBufferin ja StringBuilderin välillä Javassa on, että String on luokka, joka luo objektityypin String, joka on merkkijono, StringBuffer on luokka, jota käytetään muokkaamaan merkkijonoja, jotka tarjoavat langan turvallisuuden, ja StringBuilder on luokka, jota käytetään muokkaamaan merkkijonoja, jotka eivät tarjoa langan turvallisuutta.

SISÄLLYS

1. Yleiskatsaus ja keskeinen ero

2. Mikä on merkkijono Java-ohjelmassa

3. Mikä on StringBuffer Java-ohjelmassa

4. Mikä on StringBuilder Java-ohjelmassa

5. StringBufferin ja Java-StringBuilderin yhtäläisyydet

6. Vertailu vierekkäin - String vs StringBuffer vs StringBuilder Java taulukkomuodossa

7. Yhteenveto

Mitä merkkijono on Java-ohjelmassa?

Jousiluokka on java.lang-paketissa. Joka kerta, kun ohjelmoija luo merkkijonon, se on tyyppiä String. Merkkijonot ovat muuttumattomia, kun objekti on luotu, sitä ei voi muuttaa. Objektit, jotka on luotu käärintälajeilla, kuten kokonaisluku, tavu, kelluva, kaksinkertainen, ovat myös muuttumattomia. Merkkijono literaali on suljettu lainausmerkeissä. esim. “Hello World”. Joka kerta, kun merkkijono kirjaimellinen luodaan, Java Virtual Machine (JVM) tarkistaa merkkijonovakion. Jos merkkijono on olemassa, viittaus merkkijonovakioalueeseen palautetaan. Jos kyseessä on uusi merkkijono, kyseinen objekti luodaan merkkijonovakioalueeseen.

StringBufferin ja StringBuilderin ero Java-ohjelmassa
StringBufferin ja StringBuilderin ero Java-ohjelmassa

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

Katso alla oleva koodinpätkä.

Merkkijono s1 = “Hei”;

s1 = s1 + “maailma”;

System.out.println (s1);

Ensimmäisessä lausekkeessa s1 viittaa merkkijonon vakiopoolin “Hello” -ohjelmaan. Toisessa lausunnossa JVM ei muuta nykyistä merkkijonoa. Sen sijaan se luo uuden merkkijonon "Hello World" ja s1 viittaa nyt uuteen merkkijonoon. Poistuva “Hello” -objekti on edelleen olemassa merkkijonovakioalueessa.

Jos on koodi, joka on, Merkkijono s1 =”Hei”;

Merkkijono s2 = s1;

s1, s2 viittaavat merkkijono-objektiin "Hello".

Mitä StringBuffer on Java-ohjelmassa?

StringBuffer-luokkaa käytetään String-objektien muuttamiseen. Siksi näitä objekteja voidaan muokata. StringBuffer määrittelee neljä konstruktoria. StringBuffer (), StringBuffer (int-koko), StringBuffer (String str), StringBuffer (charSequence ch)

Katso alla oleva koodi, StringBuffer s1 = uusi StringBuffer (“Hei”);

s1.append (“maailma”);

System.out.println (s1);

Lausekkeessa 1 s1 viittaa kasan “Hello” -objektiin. Objekti on muutettavissa, koska se on luotu StringBufferilla. Lausekkeessa 2 "Maailma" on liitetty samaan "Hei" -merkkijono-objektiin.

StringBuffer-luokassa luodut merkkijono-objektit voivat säästää muistia. StringBuffer tarjoaa langan turvallisuuden, koska kaksi ketjua ei voi käyttää samaa menetelmää StringBuffer-luokassa samanaikaisesti. Langan turvallisuus heikentää StringBuffer-suorituskykyä. StringBuffer-luokka sisältää menetelmiä, kuten append (), insert (), reverse (), korvaa ().

Mitä StringBuilder on Java-ohjelmassa?

StringBuilder-luokkaa käytetään String-objektien muuttamiseen. Siksi näitä objekteja voidaan muokata. Toiminnot ovat samanlaisia kuin StringBuffer, mutta tämä ei tarjoa langan turvallisuutta. StringBuilderilla on konstruktoreita, kuten StringBuilder (), StringBuilder (int-koko), StringBuilder (String str).

Katso alla oleva koodi.

StringBuilder s1 = uusi StringBuilder (“Hei”);

s1.append (“maailma”);

System.out.println (s1);

Lausekkeessa 1 s1 viittaa kasan “Hello” -objektiin. Objekti on muutettavissa, koska se on luotu StringBuilderilla. Lausekkeessa 2 "Maailma" on liitetty samaan "Hei" -merkkijono-objektiin. Täysin uutta String-objektia ei ole luotu.

StringBuilder-luokassa luodut merkkijono-objektit voivat säästää muistia. Toisin kuin StringBufferissa, StringBuilder ei tarjoa säikeiden 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 Stringin, StringBufferin ja StringBuilderin yhtäläisyys Java-ohjelmassa?

Kaikkia voidaan käyttää merkkijonojen luomiseen

Mikä on ero StringBufferin ja StringBuilderin välillä Java-ohjelmassa?

Erilainen artikkeli keskellä taulukkoa

String vs StringBuffer vs StringBuilder

Merkkijono Merkkijono on Java-luokka, jota käytetään luomaan objektityyppi String, joka on merkkijono.
StringBuffer StringBuffer on Java-luokka, jota käytetään luomaan merkkijono-objekteja, joita voidaan muokata säikeiden turvallisuudella.
StringBuilder StringBuilder on luokka, jota käytetään luomaan merkkijono-objekteja, joita voidaan muokata ilman langan turvallisuutta.
Muutettavuus
Merkkijono Merkkijono on muuttumaton luokka.
StringBuffer StringBuffer on muutettava luokka.
StringBuilder StringBuilder on muutettava luokka.
Langan turvallisuus
Merkkijono Merkkijonomenetelmät ovat langattomia.
StringBuffer StringBufferin menetelmät ovat langattomia ja synkronoituja.
StringBuilder StringBuilderin menetelmiä ei ole kierteitetty turvallisesti eikä synkronoitu.
Esitys
Merkkijono Merkkijono on nopea.
StringBuffer StringBuffer on hidas.
StringBuilder StringBuilder on nopea.

Yhteenveto - String vs StringBuffer vs StringBuilder Javalla

String, StringBuffer ja StringBuilder näyttävät olevan samat, mutta niillä on erilainen merkitys. Kaikki nämä ovat Java-luokkia. Ero Stringin, StringBufferin ja StringBuilderin välillä Javassa on, että String on luokka tyypin String objektin luomiseksi, joka on merkistö, StringBuffer on luokka, jota käytetään merkkijonojen muokkaamiseen ja ketjun turvallisuuden takaamiseen, kun taas StringBuilder on luokka, jota käytetään muokkaamaan merkkijonoja, jotka eivät tarjoa langan turvallisuutta

Lataa PDF-tiedosto String vs StringBuffer vs StringBuilder Java-sovelluksesta

Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainausviestin mukaan. Lataa PDF-versio täältä Ero String StringBufferin ja StringBuilderin välillä Java-ohjelmassa

Suositeltava: