StringBuffer vs. StringBuilder
Java on erittäin suosittu esinekeskeinen kieli. Java-järjestelmässä merkkijono luokka on tarkoitettu pitämään merkistöjä, joita ei voi muokata (kun ne on alustettu). Vaihtoehtoisesti Java-ohjelmointikieli tarjoaa kahdentyyppisiä muuttuvia merkistöjä. Eli kun ohjelmoijien on muokattava tiettyä merkkijonoa (alustuksen jälkeen), heidän on käytettävä StringBuffer-luokkaa tai StringBuilder-luokkaa String-luokan sijasta. StringBuffer otettiin käyttöön JDK 1.0: ssa ja StringBuilder-luokka otettiin käyttöön JDK 1.5: ssä, itse asiassa StringBuffer-luokan korvikkeena (yhden säikeen ympäristöissä).
Mikä on StringBuffer?
StringBuffer-luokka otettiin käyttöön JDK 1.0: ssa. StringBuffer-luokka kuuluu java.lang-pakettiin ja perii geneeriseltä java.lang.object. Ohjelmoijat eivät voi jatkaa sitä edelleen, koska se on lopullinen luokka. StringBuffer-luokka toteuttaa Sarjasovitettavat, Liitettävät ja CharSequience-liitännät. Luokan StringBuffer objekti voi pitää sisällään muuttuvaa ja säiettä suojaavaa merkkijonoa. Tämä tarkoittaa, että se on hyvin samanlainen kuin String-objekti, mutta merkistöjä (pituus ja sisältö) voidaan muuttaa milloin tahansa StringBuffer-objektin alustamisen jälkeen. Se tulisi kuitenkin tehdä käyttämällä StringBuffer-luokan tarjoamia erityisiä menetelmiä. StringBuffer-luokassa on kaksi pääoperaatiota. Ne saadaan lisäysmenetelmällä () ja insert () -menetelmällä. Nämä menetelmät ovat ylikuormitetut, joten ne kykenevät hyväksymään kaiken tyyppisiä tietoja, kuten kokonaislukuja ja pitkiä. Molemmat menetelmät muuntaa ensin minkä tahansa syötteen merkkijonoksi ja lisää (lisää tai lisää) vastaavan merkkijonon merkit olemassa olevaan Stribbuffer -objektiin. Liitä () -metodi lisää muunnetun merkkijonon olemassa olevan StringBuffer-objektin loppuun, kun taas insert () -menetelmä lisää syötemerkit määritettyyn lisäyspisteeseen.
Mikä on StringBuilder?
StringBuilder-luokka otettiin käyttöön JDK 1.5: ssä. StringBuilder API on hyvin samanlainen kuin StringBuffer API. Itse asiassa StringBuilder-luokka otettiin käyttöön korvaavana StringBuffer-luokka (yksisäikeisiin sovelluksiin). StringBuilder-luokka kuuluu java.lang-pakettiin ja perii geneeriseltä java.lang.object. Se on viimeinen luokka, joten ohjelmoijat eivät voi jatkaa sitä. StringBuilder-luokka toteuttaa Sarjasovitettavat, Liitettävät ja CharSequience-liitännät. Luokan StringBuilder objekti voi pitää merkkijonoa, joka on muutettavissa, mutta ei lankavarma. Tämä tarkoittaa, että se on hyvin samanlainen kuin String-objekti, mutta merkkijono voidaan muuttaa milloin tahansa. Mutta StringBuilder-luokka ei tarjoa synkronointia, ja sen väitetään sen vuoksi olevan nopeampaa kuin StringBuffer-luokan käyttö. StringBuilder-luokka tarjoaa append () ja insert () -menetelmiä, joilla on tarkalleen samanlainen toiminnallisuus kuin StringBuffer-luokassa.
Mikä on ero StringBufferin ja StringBuilderin välillä??
Vaikka StringBuilder- ja StringBuffer-luokkia voidaan käyttää Java-merkkien muuttuvissa sekvensseissä, niillä on avainero. Toisin kuin StringBuffer-luokka, StringBuilder-luokka ei ole langansuojattu eikä sisällä synkronointia. Siksi on suositeltavaa, että StringBuffer-luokkaa käytetään StringBuffer-luokan sijasta yhden säikeen sovelluksissa, koska väitetään, että StringBuilder-luokka on paljon nopeampi kuin StringBuffer-luokka (normaaleissa olosuhteissa)..