Skillnad mellan StringBuffer och StringBuilder

StringBuffer vs StringBuilder

Java är ett mycket populärt objektorienterat språk. I Java tillhandahålls strängklassen för att hålla en sekvens av tecken som inte kan modifieras (en gång initialiserad). Alternativt tillhandahåller Java-programmeringsspråket två typer av muterande sekvenser av tecken. Det vill säga när programmerare behöver ändra en viss sträng (efter initialisering), måste de använda StringBuffer-klassen eller StringBuilder-klassen istället för String-klassen. StringBuffer introducerades i JDK 1.0 och StringBuilder-klassen introducerades i JDK 1.5, i själva verket som en ersättning för StringBuffer-klassen (för enkelgängade miljöer).

Vad är StringBuffer?

StringBuffer-klassen introducerades i JDK 1.0. StringBuffer-klassen tillhör paketet java.lang och är ärvt 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 hålla en sekvens av tecken som är mutable och trådsäker. Det betyder att det mycket liknar ett String-objekt, men sekvensen av tecken (längd och innehåll) kan ändras när som helst efter initiering av StringBuffer-objektet. Det bör dock ske med hjälp av de specifika metoder som ges av StringBuffer-klassen. Det finns två principer i StringBuffer-klassen. De tillhandahålls genom append () och insert () metoder. Dessa metoder överbelastas, så de kan acceptera data av vilken typ som heltal och långa. Båda metoderna omvandlar först en ingång till en sträng och lägger sedan till (bifogar eller infogar) tecknen i motsvarande sträng till det befintliga Stribbuffer-objektet. Metoden append () lägger till den konverterade strängen till slutet av det befintliga StringBuffer-objektet, medan insert () -metoden kommer att lägga till inmatnings tecknen till den angivna infogningspunkten.

Vad är StringBuilder?

StringBuilder-klassen introducerades i JDK 1.5. StringBuilder API liknar mycket StringBuffer API. Faktum är att StringBuilder-klassen faktiskt introducerades som en ersättning för StringBuffer-klassen (för enkelgängade applikationer). StringBuilder-klassen tillhör paketet java.lang och är ärvt från det generiska java.lang.object. Det är en sista klass och så kan programmerarna 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 mutable men inte trådsäker. Det betyder att det mycket liknar ett strängobjekt, men strängen kan ändras när som helst. Men StringBuilder-klassen ger inte synkronisering och hävdas därför att det är snabbare än att använda StringBuffer-klassen. StringBuilder-klassen ger append () och insert () metoder med exakt samma funktionalitet som i StringBuffer-klassen.

Vad är skillnaden mellan StringBuffer och StringBuilder?

Även om StringBuilder och StringBuffer klasser kan användas för mutable sekvenser av tecken 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 att StringBuilder-klassen ska användas i stället för StringBuffer-klassen i enkelgängade applikationer, eftersom det hävdas att StringBuilder-klassen blir mycket snabbare än StringBuffer-klassen (under normala omständigheter).