Erinevus StringBufferi ja StringBuilderi vahel

Erinevus StringBufferi ja StringBuilderi vahel
Erinevus StringBufferi ja StringBuilderi vahel

Video: Erinevus StringBufferi ja StringBuilderi vahel

Video: Erinevus StringBufferi ja StringBuilderi vahel
Video: ASMR VAMPIRE SISTERS | YOU ARE A VAMPIRE 2024, Juuni
Anonim

StringBuffer vs StringBuilder

Java on väga populaarne objektorienteeritud keel. Javas on string klass ette nähtud märgijada hoidmiseks, mida ei saa muuta (kui initsialiseeriti). Teise võimalusena pakub Java programmeerimiskeel kahte tüüpi muutuvaid märgijadasid. See tähendab, et kui programmeerijad peavad teatud stringi muutma (pärast initsialiseerimist), peavad nad kasutama String-klassi asemel klassi StringBuffer või StringBuilder. StringBuffer võeti kasutusele JDK 1.0-s ja StringBuilder klass võeti kasutusele JDK 1.5-s, tegelikult asendamaks klassi StringBuffer (ühe lõimega keskkondade jaoks).

Mis on StringBuffer?

StringBuffer klass võeti kasutusele JDK 1.0-s. Klass StringBuffer kuulub paketti java.lang ja on päritud üldisest java.lang.objectist. Programmeerijad ei saa seda veelgi laiendada, kuna see on viimane klass. StringBuffer klass rakendab Serialisable, Apppendable ja CharSequience liideseid. Klassi StringBuffer objekt võib sisaldada märgijada, mis on muutuv ja lõimekindel. See tähendab, et see on väga sarnane String-objektiga, kuid märkide jada (pikkus ja sisu) saab pärast StringBuffer objekti lähtestamist igal ajal muuta. Seda tuleks aga teha klassi StringBuffer pakutavate spetsiifiliste meetodite abil. StringBuffer klassis on kaks peamist operatsiooni. Neid pakuvad append() ja insert() meetodid. Need meetodid on ülekoormatud, nii et nad suudavad vastu võtta mis tahes tüüpi andmeid, näiteks täisarvu ja pikki andmeid. Mõlemad meetodid teisendavad esm alt mis tahes sisendi stringiks ja seejärel lisavad (lisavad või lisavad) olemasolevale Stribufferi objektile vastava stringi märgid. Meetod append() lisab teisendatud stringi olemasoleva StringBuffer objekti lõppu, meetod insert() aga lisab sisestusmärgid määratud sisestuspunkti.

Mis on StringBuilder?

StringBuilderi klass võeti kasutusele JDK versioonis 1.5. StringBuilder API on väga sarnane StringBuffer API-ga. Tegelikult võeti StringBuilder klass tegelikult kasutusele StringBuffer klassi asendajana (ühe lõimega rakenduste jaoks). Klass StringBuilder kuulub paketti java.lang ja on päritud üldisest java.lang.objectist. See on viimane klass ja seetõttu ei saa programmeerijad seda pikendada. StringBuilder klass rakendab Serialisable, Apppendable ja CharSequience liideseid. Klassi StringBuilder objekt võib sisaldada märgijada, mis on muutuv, kuid mitte lõimekindel. See tähendab, et see on väga sarnane String-objektiga, kuid stringi saab igal ajal muuta. Kuid StringBuilder klass ei paku sünkroonimist ja seetõttu väidetakse, et see on kiirem kui StringBuffer klassi kasutamine. Klass StringBuilder pakub append() ja insert() meetodeid, millel on täpselt samad funktsioonid nagu klassis StringBuffer.

Mis vahe on StringBufferil ja StringBuilderil?

Kuigi klasse StringBuilder ja StringBuffer saab Java-s muudetavate märgijadade jaoks kasutada, on neil oluline erinevus. Erinev alt klassist StringBuffer ei ole StringBuilderi klass lõimekindel ega paku sünkroonimist. Seetõttu on ühe lõimega rakendustes soovitatav kasutada klassi StringBuilder klassi StringBuffer asemel, kuna väidetav alt on StringBuilder klass palju kiirem kui StringBuffer klass (tavaolukorras).

Soovitan: