StringBuffer versus StringBuilder
Java is een erg populaire objectgeoriënteerde taal. In Java wordt de klasse String geleverd om een reeks tekens te bevatten die niet kunnen worden gewijzigd (eenmaal geïnitialiseerd). Als alternatief biedt de programmeertaal Java twee soorten veranderlijke tekenreeksen. Dat wil zeggen, wanneer de programmeurs een bepaalde String moeten wijzigen (na initialisatie), moeten ze de StringBuffer-klasse of de StringBuilder-klasse gebruiken in plaats van de String-klasse. StringBuffer werd geïntroduceerd in JDK 1.0 en StringBuilder class werd geïntroduceerd in JDK 1.5, eigenlijk als vervanging voor StringBuffer class (voor single-thread omgevingen).
Wat is StringBuffer?
StringBuffer-klasse is geïntroduceerd in JDK 1.0. StringBuffer-klasse behoort tot het pakket java.lang en wordt geërfd van het generieke java.lang.object. Programmeurs kunnen het niet verder uitbreiden omdat het een laatste les is. StringBuffer-klasse implementeert Serializable, Appendable en CharSequience-interfaces. Een object van de klasse StringBuffer kan een reeks tekens bevatten die veranderlijk en thread-safe is. Dat betekent dat het sterk lijkt op een String-object, maar de volgorde van de tekens (lengte en inhoud) kan op elk moment worden gewijzigd na het initialiseren van het StringBuffer-object. Dat moet echter worden gedaan met behulp van de specifieke methoden die worden geboden door de StringBuffer-klasse. Er zijn twee hoofdbewerkingen in de klasse StringBuffer. Ze worden geleverd door de methoden append () en insert (). Deze methoden zijn overbelast,zodat ze gegevens van elk type kunnen accepteren, zoals integer en long. Beide methoden transformeren eerst elke invoer naar een string, en voegen vervolgens de karakters van de corresponderende string toe aan het bestaande Stribbuffer-object (voegt toe of voegt ze in). De methode append () voegt de geconverteerde tekenreeks toe aan het einde van het bestaande StringBuffer-object, terwijl de methode insert () de invoertekens aan het opgegeven invoegpunt toevoegt.
Wat is StringBuilder?
StringBuilder-klasse is geïntroduceerd in JDK 1.5. StringBuilder API lijkt sterk op StringBuffer API. In feite is de StringBuilder-klasse eigenlijk geïntroduceerd als een vervanging voor de StringBuffer-klasse (voor single-thread-toepassingen). StringBuilder-klasse behoort tot het java.lang-pakket en wordt overgenomen van het generieke java.lang.object. Het is een laatste les en dus kunnen de programmeurs deze niet uitbreiden. StringBuilder-klasse implementeert Serializable, Appendable en CharSequience-interfaces. Een object van de klasse StringBuilder kan een reeks tekens bevatten die veranderlijk maar niet thread-safe is. Dat betekent dat het sterk lijkt op een String-object, maar de string kan op elk moment worden gewijzigd. Maar de StringBuilder-klasse biedt geen synchronisatie en daarom wordt beweerd dat deze sneller is dan het gebruik van de StringBuffer-klasse. StringBuilder-klasse biedt append () en insert () -methoden met exact dezelfde functionaliteit als in de StringBuffer-klasse.
Wat is het verschil tussen StringBuffer en StringBuilder?
Hoewel de klassen StringBuilder en StringBuffer kunnen worden gebruikt voor veranderlijke tekenreeksen in Java, hebben ze een belangrijk verschil. In tegenstelling tot de StringBuffer-klasse, is de StringBuilder-klasse niet thread-safe en biedt deze geen synchronisatie. Daarom wordt aanbevolen om de StringBuilder-klasse te gebruiken in plaats van de StringBuffer-klasse in toepassingen met één thread, omdat wordt beweerd dat de StringBuilder-klasse veel sneller zal zijn dan de StringBuffer-klasse (onder normale omstandigheden).