String, StringBuffer ja String Builder ovat Java-luokkia. Merkkijonoa käytetään laajalti Java-ohjelmoinnissa. Kun merkkijonoobjekti on luotu, niitä ei ole mahdollista muuttaa. Aina kun merkkijonossa tapahtuu muutos, se luo uuden merkkijonon. Vaikka se olisi liitos olemassa olevaan merkkijonoon, se luo uuden merkkijonon. Tämä aiheuttaa muistinhukkaa. StringBuffer- ja StringBuilder-luokkia Javassa käytetään Stringin modifiointiin. avainero String, StringBuffer ja StringBuilder välillä Java on se Merkkijono on luokka, jolla luodaan merkkijonoja sisältävä String-tyyppinen objekti, StringBuffer on luokka, jota käytetään merkkijonojen modifiointiin, mikä tarjoaa langan turvallisuuden, ja StringBuilder on luokka, jota käytetään muuttamaan merkkijonoja, jotka eivät tarjoa langan turvallisuutta.
1. Yleiskatsaus ja keskeiset erot
2. Mikä on Java-kieli?
3. Mikä on StringBuffer Java-järjestelmässä
4. Mikä on StringBuilder Java-järjestelmässä
5. Samankaltaisuuksia StringBuffer ja StringBuilder Java -sovelluksissa
6. Vertailu rinnakkain - String vs StringBuffer vs StringBuilder Java -sovelluksessa taulukkomuodossa
7. Yhteenveto
Jousiklassi on java.lang-paketissa. Aina kun ohjelmoija luo merkkijonon, se on String-tyyppinen objekti. Merkkijonot ovat muuttumattomia, joten kun objekti on luotu, sitä ei voi muuttaa. Objektit, jotka on luotu käyttämällä kääreluokkia, kuten kokonaisluku, tavu, kellua, tupla, ovat myös muuttumattomia. Merkkijono kirjaimella on suljettu lainausmerkeissä. esim. "Hei maailma". Aina kun merkkijono kirjaimella luodaan, Java-virtuaalikone (JVM) tarkistaa merkkijonovakion. Jos merkkijono on olemassa, palautetaan viittaus merkkijonovakioon. Jos se on uusi merkkijono, kyseinen objekti luodaan merkkijonon vakioaltaan.
Kuva 01: Java-ohjelma, joka käyttää String-, StringBuffer- ja StringBuilder-ohjelmia
Katso alla oleva koodiosa.
Merkkijono s1 = “Hei”;
s1 = s1 + “maailma”;
System.out.println (s1);
Ensimmäisessä lauseessa s1 viittaa “Hei” Stringvakio-altaassa. Toisessa lausunnossa JVM ei muuta olemassa olevaa merkkijonoa. Sen sijaan se luo uuden merkkijonon nimellä "Hello World" ja s1 viittaa nyt uuteen merkkijonoon. Poistuva "Hello" -objekti on edelleen olemassa String-vakio-altaassa.
Jos on koodi, joka on,
Merkkijono s1 = ”Hei”;
Jousto s2 = s1;
s1, s2 molemmat viittaavat merkkijonoobjektiin “Hei”.
StringBuffer-luokkaa käytetään merkkijonoobjektien muuttamiseen. Siksi näitä esineitä voidaan muokata. StringBuffer määrittelee neljä rakentajaa. StringBuffer (), StringBuffer (int koko), StringBuffer (String str), StringBuffer (charSequence [] ch)
Katso alla oleva koodi,
StringBuffer s1 = uusi StringBuffer (“Hei”);
s1.append ( ”World”);
System.out.println (s1);
Lauseessa 1 s1 viittaa kasassa olevaan "Hello" -objektiin. Objekti on muutettavissa, koska se on luotu StringBufferilla. Lausunnossa 2 ”Maailma” liitetään samaan ”Hei” -merkkijono-esineeseen.
StringBuffer-luokalla luodut merkkijonoobjektit voivat säästää muistia. StringBuffer tarjoaa langan turvallisuuden, koska kaksi säiettä ei voi käyttää samaa menetelmää StringBuffer-luokassa samanaikaisesti. Kierteiden turvallisuus vähentää StringBuffer-suorituskykyä. StringBuffer-luokka sisältää menetelmiä, kuten liite (), lisäys (), käänteinen (), korvaa ().
StringBuilder-luokkaa käytetään merkkijonoobjektien muuttamiseen. Siksi näitä esineitä voidaan muokata. Toiminto on samanlainen kuin StringBuffer, mutta tämä ei takaa langan turvallisuutta. StringBuilderissä on rakenteita, kuten StringBuilder (), StringBuilder (int koko), StringBuilder (String str).
Katso alla oleva koodi.
StringBuilder s1 = uusi StringBuilder (“Hei”);
s1.append ( ”World”);
System.out.println (s1);
Lauseessa 1 s1 viittaa kasassa olevaan "Hello" -objektiin. Objekti on muutettavissa, koska se on luotu StringBuilderillä. Lausunnossa 2 ”Maailma” liitetään samaan ”Hei” -merkkijono-esineeseen. Täysin uutta String-objektia ei luoda.
StringBuilder-luokalla luodut kieliobjektit voivat säästää muistia. Toisin kuin StringBufferissa, StringBuilder ei tarjoa langan turvallisuutta, koska kaksi säiettä voi käyttää samaa menetelmää StringBuilder-luokassa samanaikaisesti. StringBuilder-luokka sisältää menetelmiä, kuten liite (), lisäys (), käänteinen (), korvaa ().
String vs StringBuffer vs StringBuilder | |
jono | Merkkijono on Java-luokka, jota käytetään String-tyyppisen objektin luomiseen, joka on merkkijono. |
StringBuffer | StringBuffer on Java-luokka, jota käytetään luomaan String-objekteja, joita voidaan muokata langan turvallisudella. |
StringBuilder | StringBuilder on luokka, jota käytetään merkkijonoobjektien luomiseen, joita voidaan muokata ilman säieiden turvallisuutta. |
mutability | |
jono | Merkkijono on muuttumaton luokka. |
StringBuffer | StringBuffer on muuttuva luokka. |
StringBuilder | StringBuilder on muuttuva luokka. |
Kierteiden turvallisuus | |
jono | Merkkijonomenetelmät ovat säiettä turvallisia. |
StringBuffer | StringBuffer-menetelmät ovat säiettä turvallisia ja synkronoituja. |
StringBuilder | StringBuilderin menetelmiä ei ole kierteitetty turvallisesti eikä niitä synkronoida. |
Esitys | |
jono | Merkkijono on nopea. |
StringBuffer | StringBuffer on hidas. |
StringBuilder | StringBuilder on nopea. |
String, StringBuffer ja StringBuilder näyttävät olevan samat, mutta niillä on eri merkitykset. Kaikki nämä ovat Java-luokkia. Ero Java-kielissä StringBuffer ja StringBuilder ovat siinä, että String on luokka, jolla luodaan String-tyyppinen objekti, joka on merkistö. StringBuffer on luokka, jota käytetään Strings-modifiointiin ja säikeiden turvallisuuden takaamiseen, kun taas StringBuilder on luokka, jota käytetään muuttamaan merkkijonoja, jotka eivät tarjoa langan turvallisuutta.
Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainaushuomautuksen mukaisesti. Lataa PDF-versio tästä Ero Java-kielissä StringBuffer ja StringBuilder
1. “String vs StringBuffer vs StringBuilder.” JournalDev, 30. heinäkuuta 2017. Saatavilla täältä
2. ”Java Hungry”. Ero merkkijono-, StringBuilder- ja StringBuffer-luokkien välillä esimerkiksi: Java | Java nälkäinen. Saatavilla täältä
3.tutorialspoint.com. ”Java-kielet”. Kohta. Saatavilla täältä