Forskellen mellem StringBuffer og StringBuilder

Forskellen mellem StringBuffer og StringBuilder
Forskellen mellem StringBuffer og StringBuilder

Video: Forskellen mellem StringBuffer og StringBuilder

Video: Forskellen mellem StringBuffer og StringBuilder
Video: Эмили Ливайн: Теория Всего от ловкача 2024, Juli
Anonim

StringBuffer vs StringBuilder

Java er et meget populært objektorienteret sprog. I Java leveres String-klassen til at indeholde en sekvens af tegn, der ikke kan ændres (når først initialiseret). Alternativt giver programmeringssproget Java to typer foranderlige sekvenser af tegn. Det vil sige, at når programmørerne skal modificere en bestemt String (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-klassen (til enkelttrådsmiljøer).

Hvad er StringBuffer?

StringBuffer-klassen blev introduceret i JDK 1.0. StringBuffer-klassen tilhører java.lang-pakken og er nedarvet fra det generiske java.lang.object. Programmører kan ikke udvide det yderligere, da det er en sidste klasse. StringBuffer-klassen implementerer Serializable, Appendable og CharSequience-grænseflader. Et objekt af klassen StringBuffer kan indeholde en sekvens af tegn, der er mutable og trådsikker. Det betyder, at det minder meget om et String-objekt, men rækkefølgen af tegn (længde og indhold) kan ændres til enhver tid 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 af metoderne append() og insert(). Disse metoder er overbelastede, så de er i stand til at acceptere data af enhver type, såsom heltal og lang. Begge metoder transformerer først ethvert 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 tilføjer inputtegnene til det angivne indsættelsespunkt.

Hvad er StringBuilder?

StringBuilder-klassen blev introduceret i JDK 1.5. StringBuilder API minder meget om StringBuffer API. Faktisk blev StringBuilder-klassen faktisk introduceret som en erstatning for StringBuffer-klassen (til enkelttrådsapplikationer). StringBuilder-klassen hører til java.lang-pakken og er nedarvet fra det generiske java.lang.object. Det er en sidste klasse, så programmørerne kan ikke forlænge den. StringBuilder-klassen implementerer Serializable, Appendable og CharSequience-grænseflader. Et objekt af klassen StringBuilder kan indeholde en sekvens af tegn, der kan ændres, men ikke trådsikker. Det betyder, at det minder meget om et String-objekt, men strengen kan ændres til enhver tid. Men StringBuilder-klassen giver ikke synkronisering og hævdes derfor at være hurtigere end at bruge StringBuffer-klassen. StringBuilder-klassen giver append() og insert()-metoder med nøjagtig lignende funktionalitet som i StringBuffer-klassen.

Hvad er forskellen mellem StringBuffer og StringBuilder?

Selv om klasserne StringBuilder og StringBuffer kan bruges til foranderlige 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 bruges i stedet for StringBuffer-klassen i enkelttrådsapplikationer, fordi det hævdes, at StringBuilder-klassen vil være meget hurtigere end StringBuffer-klassen (under normale omstændigheder).

Anbefalede: