Atšķirība starp StringBuffer un StringBuilder

Atšķirība starp StringBuffer un StringBuilder
Atšķirība starp StringBuffer un StringBuilder

Video: Atšķirība starp StringBuffer un StringBuilder

Video: Atšķirība starp StringBuffer un StringBuilder
Video: Starp mākoņiem un mums 2024, Jūlijs
Anonim

StringBuffer vs StringBuilder

Java ir ļoti populāra objektorientēta valoda. Java versijā String klase ir paredzēta, lai saturētu rakstzīmju secību, ko 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, ja programmētājiem ir jāmaina noteikta virkne (pēc inicializācijas), viņiem ir jāizmanto klase StringBuffer vai StringBuilder klase, nevis klase String. StringBuffer tika ieviests JDK 1.0 un StringBuilder klase tika ieviesta JDK 1.5, faktiski kā StringBuffer klases aizstājējs (vienpavedienu vidēm).

Kas ir StringBuffer?

StringBuffer klase tika ieviesta JDK 1.0. StringBuffer klase pieder pakotnei java.lang un ir mantota no vispārīgā java.lang.object. Programmētāji to nevar paplašināt, jo tā ir pēdējā klase. StringBuffer klase ievieš Serializable, Appendable un CharSequience saskarnes. Klases StringBuffer objektā var būt mainīga un pavedienu droša rakstzīmju secība. Tas nozīmē, ka tas ir ļoti līdzīgs String objektam, 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 klase StringBuffer. StringBuffer klasē ir divas galvenās darbības. Tos nodrošina append() un insert() metodes. Šīs metodes ir pārslogotas, tāpēc tās spēj pieņemt jebkura veida datus, piemēram, veselus un garus datus. Abas metodes vispirms pārveido jebkuru ievadi virknē un pēc tam pievieno (pievieno vai ievieto) atbilstošās virknes rakstzīmes esošajam Stribbuffer objektam. Metode append() pievieno pārveidoto virkni esošā StringBuffer objekta beigām, savukārt metode insert() pievienos ievades rakstzīmes norādītajam ievietošanas punktam.

Kas ir StringBuilder?

StringBuilder klase tika ieviesta JDK 1.5 versijā. StringBuilder API ir ļoti līdzīga StringBuffer API. Faktiski klase StringBuilder faktiski tika ieviesta kā StringBuffer klases aizstājējs (vienpavedienu lietojumprogrammām). StringBuilder klase pieder pakotnei java.lang un ir mantota no vispārīgā java.lang.object. Tā ir pēdējā klase, un tāpēc programmētāji nevar to pagarināt. StringBuilder klase ievieš Serializable, Appendable un CharSequience saskarnes. Klases StringBuilder objekts var saturēt rakstzīmju secību, kas ir maināma, bet nav droša pavedienam. Tas nozīmē, ka tā ir ļoti līdzīga virknes objektam, 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. StringBuilder klase nodrošina append() un insert() metodes ar tieši līdzīgu funkcionalitāti kā StringBuffer klasē.

Kāda ir atšķirība starp StringBuffer un StringBuilder?

Lai gan klases StringBuilder un StringBuffer var izmantot mainīgām rakstzīmju sekvencēm Java, tām ir būtiska atšķirība. Atšķirībā no StringBuffer klases, StringBuilder klase nav pavedienu droša un nenodrošina sinhronizāciju. Tāpēc viena pavediena lietojumprogrammās ir ieteicams izmantot klasi StringBuilder klases StringBuffer vietā, jo tiek apgalvots, ka StringBuilder klase būs daudz ātrāka nekā StringBuffer klase (normālos apstākļos).

Ieteicams: