Forskjell mellom StringBuffer og StringBuilder

Anonim

StringBuffer vs StringBuilder

Java er et veldig populært objektorientert språk. I Java er String-klassen gitt for å holde en sekvens av tegn som ikke kan endres (en gang initialisert). Alternativt gir Java-programmeringsspråket to typer mutable sekvenser av tegn. Det vil si når programmererne må 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, egentlig 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 pakke og er arvet fra den generiske java. Lang. gjenstand. Programmører kan ikke forlenge 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 mutable og trådssikker. Det betyr at det er veldig mye som et String-objekt, men sekvensen av tegn (lengde og innhold) kan endres til enhver tid etter at du initialiserer StringBuffer-objektet. Det skal imidlertid gjøres ved hjelp av de spesifikke metodene som tilbys av StringBuffer-klassen. Det er to prinsipielle operasjoner i StringBuffer-klassen. De leveres ved å legge til () og sette inn () metoder. Disse metodene er overbelastet, slik at de er i stand til å akseptere data av enhver type som helhet og lang. Begge metodene forvandler for det første innspill til en streng, og legger deretter (legger til eller legger inn) tegnene til den tilsvarende strengen til det eksisterende Stribbuffer-objektet. Metoden append () legger til den konverterte strengen til slutten av det eksisterende StringBuffer-objektet, mens insert () -metoden vil legge inn tegnene til det angitte innsettingspunktet.

Hva er StringBuilder?

StringBuilder-klassen ble introdusert i JDK 1. 5. StringBuilder API ligner veldig mye på StringBuffer API. Faktisk ble StringBuilder-klassen faktisk introdusert som en erstatning for StringBuffer-klassen (for enkelttrådsprogrammer). StringBuilder-klassen tilhører java. lang pakke og er arvet fra den generiske java. Lang. gjenstand. Det er en siste klasse og så kan programmørene ikke forlenge den. StringBuilder-klassen implementerer Serializable, Appendable og CharSequience-grensesnitt. Et objekt av klassen StringBuilder kan holde en sekvens av tegn som er mutable, men ikke trådssikker. Det betyr at det er veldig mye som 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 samme funksjonalitet som i StringBuffer-klassen.

Hva er forskjellen mellom StringBuffer og StringBuilder?

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