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.
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