Verschil tussen StringBuffer en StringBuilder

Anonim

StringBuffer versus StringBuilder

Java is een zeer populaire object georiënteerde taal. In Java is de String-klasse voorzien om een ​​reeks karakters vast te houden die niet kunnen worden gewijzigd (een keer geïnitialiseerd). Als alternatief biedt Java-programmeertaal twee soorten mutabele sequenties van tekens. Dat wil zeggen dat wanneer de programmeurs een bepaalde string moeten wijzigen (na initialisatie), moeten ze de klasse StringBuffer of de StringBuilder-klasse gebruiken in plaats van de String-klasse. StringBuffer werd geïntroduceerd in JDK 1. 0 en StringBuilder klasse werd geïntroduceerd in JDK 1. 5, eigenlijk als vervanging voor StringBuffer klasse (voor single-thread omgevingen).

Wat is StringBuffer?

StringBuffer klasse werd geïntroduceerd in JDK 1. 0. De klasse StringBuffer behoort tot de java. lang pakket en is geërfd van de generieke Java. Lang. voorwerp. Programmeurs kunnen het niet verder uitbreiden omdat het een laatste klas is. StringBuffer klasse implementeert Serializable, Appendable en CharSequience interfaces. Een object van de klasse StringBuffer kan een reeks karakters bevatten die mutable en thread safe zijn. Dat betekent dat het zeer vergelijkbaar is met een String-object, maar de volgorde van tekens (lengte en inhoud) kan te allen tijde worden gewijzigd na het initialiseren van het StringBuffer-object. Dit moet echter gebeuren met behulp van de specifieke methoden die door de StringBuffer-klasse worden geleverd. Er zijn twee principale operaties in de StringBuffer klasse. Ze worden geleverd door append () en insert () methodes. Deze methoden zijn overbelast, zodat ze gegevens van elk type zoals integer en lang kunnen accepteren. Beide methoden transformeren eerst de invoer van een tekenreeks en voegt vervolgens de tekens van de bijbehorende string toe aan het bestaande Stribbuffer-object. De methode append () voegt de geconverteerde tekenreeks toe aan het einde van het bestaande StringBuffer-object, terwijl de insert () -methode de invoertekens voegt aan het opgegeven invoegpunt.

Wat is StringBuilder?

StringBuilder klasse werd geïntroduceerd in JDK 1. 5. StringBuilder API lijkt zeer op StringBuffer API. In feite is de StringBuilder-klasse eigenlijk geïntroduceerd als vervanging voor de StringBuffer-klasse (voor single-thread applicaties). De klasse StringBuilder behoort tot de java. lang pakket en is geërfd van de generieke Java. Lang. voorwerp. Het is een laatste klas en dus kunnen de programmeurs het niet verlengen. StringBuilder klasse implementeert Serializable, Appendable en CharSequience interfaces. Een voorwerp van de klasse StringBuilder kan een reeks karakters bevatten die mutable maar niet thread-safe zijn. Dat betekent dat het zeer vergelijkbaar is met een String object, maar de snaar kan op elk moment veranderd worden.Maar de StringBuilder-klasse biedt geen synchronisatie, en daarom wordt beweerd dat het sneller is dan het gebruik van de StringBuffer-klasse. StringBuilder klasse biedt append () en insert () methoden met precies dezelfde functionaliteit als in de StringBuffer klasse.

Wat is het verschil tussen StringBuffer en StringBuilder?

Hoewel StringBuilder en StringBuffer klassen kunnen worden gebruikt voor mutabele sequenties van tekens in Java, hebben ze een belangrijk verschil. In tegenstelling tot de StringBuffer-klasse is de StringBuilder-klasse niet draadloos en biedt geen synchronisatie. Daarom wordt aanbevolen dat de StringBuilder klasse gebruikt wordt in plaats van de StringBuffer-klasse in enkeldraadtoepassingen, omdat het beweert dat de StringBuilder-klasse veel sneller zal zijn dan de StringBuffer-klasse (onder normale omstandigheden).