StringBuffer vs StringBuilder
Java er et meget populært objektorienteret sprog. I Java leveres klassen String til at indeholde en række tegn, der ikke kan ændres (når de først er initialiseret). Alternativt giver Java-programmeringssprog to typer ændrede sekvenser af tegn. Når programmererne 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-klassen (til miljøer med en tråd).
Hvad er StringBuffer?
StringBuffer-klassen blev introduceret i JDK 1.0. StringBuffer-klassen hører til java.lang-pakken og arves fra det generiske java.lang.object. Programmører kan ikke udvide det yderligere, da det er en sidste klasse. StringBuffer klasse implementerer Serializable, Appendable og CharSequience grænseflader. Et objekt i klassen StringBuffer kan indeholde en sekvens af tegn, der kan ændres og trådsikker. Det betyder, at det ligner meget et String-objekt, men rækkefølgen af tegn (længde og indhold) kan ændres når som helst efter initialisering af StringBuffer-objektet. Dette skal dog gøres ved hjælp af de specifikke metoder, der leveres af StringBuffer-klassen. Der er to hovedoperationer i StringBuffer-klassen. De leveres af append () og insert () metoder. 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 derefter (tilføjer eller indsætter) tegnene i den tilsvarende streng til det eksisterende Stribbuffer-objekt. Metoden append () 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 ligner meget StringBuffer API. Faktisk blev StringBuilder-klassen faktisk introduceret som en erstatning for StringBuffer-klassen (til applikationer med en enkelt tråd). StringBuilder-klassen hører til java.lang-pakken og arves fra det generiske java.lang.object. Det er en sidste klasse, og derfor kan programmørerne ikke udvide den. StringBuilder klasse implementerer Serializable, Appendable og CharSequience grænseflader. Et objekt i klassen StringBuilder kan indeholde en række tegn, der kan ændres, men ikke trådsikker. Det betyder, at det ligner meget et strengobjekt, men strengen kan ændres når som helst. 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 samme funktionalitet som i StringBuffer-klassen.
Hvad er forskellen mellem StringBuffer og StringBuilder?
Selvom StringBuilder- og StringBuffer-klasser kan bruges til ændrede sekvenser af tegn i Java, har de en nøgleforskel. 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 applikationer med en enkelt tråd, fordi det hævdes, at StringBuilder-klassen vil være meget hurtigere end StringBuffer-klassen (under normale omstændigheder).