StringBuffer vs StringBuilder
Java ir ļoti populāra uz objektu orientēta valoda. Java klasē String ir paredzēta rakstzīmju secība, kuru nevar modificēt (pēc inicializācijas). Alternatīvi, Java programmēšanas valoda nodrošina divu veidu mainīgas rakstzīmju secības. Tas ir, kad programmētājiem ir jāmaina noteikta virkne (pēc inicializācijas), viņiem ir jāizmanto StringBuffer vai StringBuilder klase, nevis String klase. StringBuffer tika ieviests JDK 1.0 un StringBuilder klase tika ieviests JDK 1.5, faktiski kā aizstājējs StringBuffer klasei (viena pavediena vidēm).
Kas ir StringBuffer?
StringBuffer klase tika ieviesta JDK 1.0. StringBuffer klase pieder pakotnei java.lang un tiek mantota no vispārīgā java.lang.object. Programmētāji to vairs nevar pagarināt, jo tā ir pēdējā klase. StringBuffer klase ievieš saskarnes Serializable, Appendable un CharSequience. Klases StringBuffer objekts var saturēt mainīgu un ar pavedieniem drošu rakstzīmju secību. Tas nozīmē, ka tas ir ļoti līdzīgs objektam String, taču rakstzīmju secību (garumu un saturu) var mainīt jebkurā laikā pēc StringBuffer objekta inicializācijas. Tomēr tas jādara, izmantojot īpašās metodes, ko nodrošina StringBuffer klase. StringBuffer klasē ir divas galvenās operācijas. Tos nodrošina pievienošanas () un ievietošanas () metodes. Šīs metodes ir pārslogotas,tāpēc viņi spēj pieņemt jebkura veida datus, piemēram, veselu skaitli un garus. Abas metodes vispirms pārveido jebkuru ievadi virknē un pēc tam esošajam Stribbuffer objektam pievieno (pievieno vai ievieto) atbilstošās virknes rakstzīmes. Metode Append () pievieno pārveidoto virkni esošā StringBuffer objekta beigām, savukārt Insert () metode pievienos ievades rakstzīmes norādītajam ievietošanas punktam.
Kas ir StringBuilder?
StringBuilder klase tika ieviesta JDK 1.5. StringBuilder API ir ļoti līdzīgs StringBuffer API. Faktiski StringBuilder klase faktiski tika ieviesta kā aizstājēja StringBuffer klasei (viena pavediena lietojumprogrammām). StringBuilder klase pieder pakotim java.lang un tiek mantota no vispārīgā java.lang.object. Tā ir pēdējā klase, un tāpēc programmētāji to nevar pagarināt. StringBuilder klase ievieš Serializable, Appendable un CharSequience saskarnes. Klases StringBuilder objekts var saturēt mainīgu, bet ne ar diegu drošu rakstzīmju secību. Tas nozīmē, ka tas ir ļoti līdzīgs objektam String, taču virkni var mainīt jebkurā laikā. Bet StringBuilder klase nenodrošina sinhronizāciju, un tāpēc tiek apgalvots, ka tā ir ātrāka nekā StringBuffer klases izmantošana. Klase StringBuilder nodrošina pievienošanas () un ievietošanas () metodes ar tieši tādu pašu funkcionalitāti kā klasē StringBuffer.
Kāda ir atšķirība starp StringBuffer un StringBuilder?
Lai gan klases StringBuilder un StringBuffer var izmantot maināmām rakstzīmju secībām Java, tām ir galvenā atšķirība. Atšķirībā no klases StringBuffer, StringBuilder klase nav droša ar pavedieniem un nenodrošina sinhronizāciju. Tāpēc vienas pavediena lietojumprogrammās ieteicams izmantot StringBuilder klasi StringBuffer klases vietā, jo tiek apgalvots, ka StringBuilder klase būs daudz ātrāka nekā StringBuffer klase (normālos apstākļos).