Forskel mellem StringBuffer og StringBuilder

Anonim

StringBuffer vs StringBuilder

Java er et meget populært objektorienteret sprog. I Java er String-klassen tilvejebragt for at holde en sekvens af tegn, der ikke kan ændres (en gang initialiseret). Alternativt indeholder Java-programmeringssprog to typer af mulige sekvenser af tegn. Det vil sige, når programmørerne skal ændre en bestemt streng (efter initialisering), skal de bruge StringBuffer-klassen eller StringBuilder-klassen i stedet for String-klassen. StringBuffer blev introduceret i JDK 1. 0 og StringBuilder klassen blev introduceret i JDK 1. 5, faktisk som en erstatning for StringBuffer klasse (for single-thread miljøer).

Hvad er StringBuffer?

StringBuffer klasse blev introduceret i JDK 1. 0. StringBuffer klasse tilhører java. lang pakke og er arvet fra den generiske java. Lang. objekt. Programmører kan ikke udvide det yderligere, da det er en sidste klasse. StringBuffer klasse implementerer Serializable, Appendable og CharSequience interfaces. Et objekt af klassen StringBuffer kan indeholde en sekvens af tegn, som er mutable og trådsikker. Det betyder, at det svarer meget til et String-objekt, men sekvensen af ​​tegn (længde og indhold) kan ændres når som helst efter initialisering af StringBuffer-objektet. Det skal dog gøres ved hjælp af de specifikke metoder, der leveres af StringBuffer-klassen. Der er to principielle operationer i StringBuffer-klassen. De leveres ved hjælp af append () og insert () metoder. Disse metoder overbelastes, så de er i stand til at acceptere data af enhver type som heltal og lang. Begge metoder forvandler først input til en streng, og tilføjer (tilføjer eller indsætter) tegnene i den tilsvarende streng til det eksisterende Stribbuffer-objekt. Append () -metoden tilføjer den konverterede streng til slutningen af ​​det eksisterende StringBuffer-objekt, mens insert () -metoden vil tilføje indtastningstegnene til det angivne indsættelsespunkt.

Hvad er StringBuilder?

StringBuilder klasse blev introduceret i JDK 1. 5. StringBuilder API ligner meget StringBuffer API. Faktisk blev StringBuilder klasse faktisk introduceret som en erstatning for StringBuffer klassen (til enkelt-tråd applikationer). StringBuilder klasse tilhører java. lang pakke og er arvet fra den generiske java. Lang. objekt. Det er en sidste klasse og så kan programmørerne ikke udvide det. StringBuilder klasse implementerer Serializable, Appendable og CharSequience interfaces. En genstand for klassen StringBuilder kan indeholde en sekvens af tegn, som er mutable, men ikke trådsikker. Det betyder, at det ligner meget på et String-objekt, men strengen kan ændres når som helst.Men StringBuilder-klassen giver ikke synkronisering, og det hævdes derfor at være hurtigere end at bruge StringBuffer-klassen. StringBuilder klasse giver append () og insert () metoder med nøjagtig lignende funktionalitet som i StringBuffer klasse.

Hvad er forskellen mellem StringBuffer og StringBuilder?

Selvom StringBuilder og StringBuffer klasser kan bruges til mutable sekvenser af tegn i Java, har de en vigtig forskel. I modsætning til StringBuffer-klassen er StringBuilder-klassen ikke trådsikker og giver ingen synkronisering. Derfor anbefales det, at StringBuilder-klassen anvendes i stedet for StringBuffer-klassen i enkelttrådsprogrammer, fordi det hævdes, at StringBuilder-klassen vil være meget hurtigere end StringBuffer-klassen (under normale omstændigheder).