Forskjellen mellom StringBuffer og StringBuilder

Forskjellen mellom StringBuffer og StringBuilder
Forskjellen mellom StringBuffer og StringBuilder

Video: Forskjellen mellom StringBuffer og StringBuilder

Video: Forskjellen mellom StringBuffer og StringBuilder
Video: Топ восемь главных признаков, что вы находитесь под воздействием черной магии 2024, Juli
Anonim

StringBuffer vs StringBuilder

Java er et veldig populært objektorientert språk. I Java er String-klassen gitt for å inneholde en sekvens av tegn som ikke kan endres (når den er initialisert). Alternativt gir programmeringsspråket Java to typer foranderlige tegnsekvenser. Det vil si at når programmererne trenger å endre en bestemt streng (etter initialisering), må de bruke StringBuffer-klassen eller StringBuilder-klassen, i stedet for String-klassen. StringBuffer ble introdusert i JDK 1.0 og StringBuilder-klassen ble introdusert i JDK 1.5, faktisk som en erstatning for StringBuffer-klassen (for enkelttrådsmiljøer).

Hva er StringBuffer?

StringBuffer-klassen ble introdusert i JDK 1.0. StringBuffer-klassen tilhører java.lang-pakken og er arvet fra den generiske java.lang.object. Programmerere kan ikke utvide det lenger siden det er en siste klasse. StringBuffer-klassen implementerer Serializable, Appendable og CharSequience-grensesnitt. Et objekt av klassen StringBuffer kan inneholde en sekvens av tegn som er mutbar og trådsikker. Det betyr at det er veldig likt et String-objekt, men sekvensen av tegn (lengde og innhold) kan endres når som helst etter initialisering av StringBuffer-objektet. Det bør imidlertid gjøres ved å bruke de spesifikke metodene gitt av StringBuffer-klassen. Det er to prinsippoperasjoner i StringBuffer-klassen. De leveres av metodene append() og insert(). Disse metodene er overbelastet, så de er i stand til å akseptere data av enhver type som heltall og lang. Begge metodene transformerer først alle inndata til en streng, og legger deretter til (legger til eller setter inn) tegnene til den tilsvarende strengen til det eksisterende Stribbuffer-objektet. Append()-metoden legger til den konverterte strengen til slutten av det eksisterende StringBuffer-objektet, mens insert()-metoden vil legge til inndatategnene til det angitte innsettingspunktet.

Hva er StringBuilder?

StringBuilder-klassen ble introdusert i JDK 1.5. StringBuilder API er veldig lik StringBuffer API. Faktisk ble StringBuilder-klassen faktisk introdusert som en erstatning for StringBuffer-klassen (for enkelttrådsapplikasjoner). StringBuilder-klassen tilhører java.lang-pakken og er arvet fra den generiske java.lang.object. Det er en siste klasse, så programmererne kan ikke utvide den. StringBuilder-klassen implementerer Serializable, Appendable og CharSequience-grensesnitt. Et objekt av klassen StringBuilder kan inneholde en sekvens av tegn som er mutbar, men ikke trådsikker. Det betyr at det er veldig likt et String-objekt, men strengen kan endres når som helst. Men StringBuilder-klassen gir ikke synkronisering, og hevdes derfor å være raskere enn å bruke StringBuffer-klassen. StringBuilder-klassen gir append() og insert()-metoder med nøyaktig lignende funksjonalitet som i StringBuffer-klassen.

Hva er forskjellen mellom StringBuffer og StringBuilder?

Selv om StringBuilder- og StringBuffer-klassene kan brukes for mutable sekvenser av tegn i Java, har de en nøkkelforskjell. I motsetning til StringBuffer-klassen, er ikke StringBuilder-klassen trådsikker og gir ingen synkronisering. Derfor anbefales det at StringBuilder-klassen brukes i stedet for StringBuffer-klassen i enkelttrådsapplikasjoner, fordi det hevdes at StringBuilder-klassen vil være mye raskere enn StringBuffer-klassen (under normale omstendigheter).

Anbefalt: