Skillnaden mellan StringBuffer och StringBuilder

Skillnaden mellan StringBuffer och StringBuilder
Skillnaden mellan StringBuffer och StringBuilder

Video: Skillnaden mellan StringBuffer och StringBuilder

Video: Skillnaden mellan StringBuffer och StringBuilder
Video: Höst, högtryck och dimma 2024, Juli
Anonim

StringBuffer vs StringBuilder

Java är ett mycket populärt objektorienterat språk. I Java tillhandahålls klassen String för att innehålla en sekvens av tecken som inte kan ändras (när den har initierats). Alternativt tillhandahåller programmeringsspråket Java två typer av föränderliga teckensekvenser. Det vill säga när programmerarna behöver modifiera en viss sträng (efter initiering) måste de använda klassen StringBuffer eller StringBuilder-klassen, istället för klassen String. StringBuffer introducerades i JDK 1.0 och StringBuilder-klassen introducerades i JDK 1.5, faktiskt som en ersättning för StringBuffer-klassen (för enkeltrådsmiljöer).

Vad är StringBuffer?

StringBuffer-klassen introducerades i JDK 1.0. StringBuffer-klassen tillhör paketet java.lang och ärvs från det generiska java.lang.object. Programmerare kan inte förlänga det längre eftersom det är en sista klass. StringBuffer-klassen implementerar Serializable, Appendable och CharSequience-gränssnitt. Ett objekt av klassen StringBuffer kan innehålla en sekvens av tecken som är föränderlig och trådsäker. Det betyder att det är mycket likt ett String-objekt, men sekvensen av tecken (längd och innehåll) kan ändras när som helst efter initialisering av StringBuffer-objektet. Det bör dock göras med de specifika metoder som tillhandahålls av StringBuffer-klassen. Det finns två principoperationer i StringBuffer-klassen. De tillhandahålls av metoderna append() och insert(). Dessa metoder är överbelastade, så de kan acceptera data av vilken typ som helst som heltal och lång. Båda metoderna omvandlar först valfri indata till en sträng och lägger sedan till (lägger till eller infogar) tecknen i motsvarande sträng till det befintliga Stribbuffer-objektet. Metoden append() lägger till den konverterade strängen i slutet av det befintliga StringBuffer-objektet, medan metoden insert() lägger till indatatecken till den angivna insättningspunkten.

Vad är StringBuilder?

StringBuilder-klassen introducerades i JDK 1.5. StringBuilder API är mycket likt StringBuffer API. Faktum är att StringBuilder-klassen introducerades som en ersättning för StringBuffer-klassen (för entrådsapplikationer). StringBuilder-klassen tillhör paketet java.lang och ärvs från det generiska java.lang.object. Det är en sista klass och så programmerarna kan inte förlänga den. StringBuilder-klassen implementerar Serializable, Appendable och CharSequience-gränssnitt. Ett objekt av klassen StringBuilder kan innehålla en sekvens av tecken som är föränderlig men inte trådsäker. Det betyder att det är mycket likt ett String-objekt, men strängen kan ändras när som helst. Men StringBuilder-klassen tillhandahåller inte synkronisering och påstås därför vara snabbare än att använda StringBuffer-klassen. StringBuilder-klassen tillhandahåller metoderna append() och insert() med exakt liknande funktionalitet som i StringBuffer-klassen.

Vad är skillnaden mellan StringBuffer och StringBuilder?

Även om klasserna StringBuilder och StringBuffer kan användas för föränderliga teckensekvenser i Java, har de en viktig skillnad. Till skillnad från StringBuffer-klassen är StringBuilder-klassen inte trådsäker och ger ingen synkronisering. Därför rekommenderas det att StringBuilder-klassen ska användas istället för StringBuffer-klassen i entrådsapplikationer, eftersom det påstås att StringBuilder-klassen kommer att vara mycket snabbare än StringBuffer-klassen (under normala omständigheter).

Rekommenderad: