Διαφορά μεταξύ StringBuffer και StringBuilder

Anonim

StringBuffer vs StringBuilder

Java είναι μια πολύ δημοφιλής γλώσσα αντικειμενοστραφής. Στην Java, παρέχεται η κλάση String για τη διατήρηση μιας ακολουθίας χαρακτήρων που δεν μπορούν να τροποποιηθούν (αφού αρχικοποιηθεί). Εναλλακτικά, η γλώσσα προγραμματισμού Java παρέχει δύο τύπους μεταβλητών ακολουθιών χαρακτήρων. Δηλαδή, όταν οι προγραμματιστές πρέπει να τροποποιήσουν ένα συγκεκριμένο String (μετά την αρχικοποίηση), πρέπει να χρησιμοποιήσουν την κλάση StringBuffer ή την κλάση StringBuilder, αντί για την κλάση String. Το StringBuffer εισήχθη στο JDK 1. 0 και η κλάση StringBuilder εισήχθη στο JDK 1. 5, στην πραγματικότητα ως αντικατάσταση της κλάσης StringBuffer (για περιβάλλοντα μονής κλωστής).

Τι είναι το StringBuffer;

Η κλάση StringBuffer εισήχθη στο JDK 1. 0. Η κλάση StringBuffer ανήκει στη java. lang πακέτο και κληρονομείται από τη γενική java. lang. αντικείμενο. Οι προγραμματιστές δεν μπορούν να την επεκτείνουν περαιτέρω αφού είναι τελική κατηγορία. Η κλάση StringBuffer υλοποιεί διεπαφές Serializable, Appendable και CharSequience. Ένα αντικείμενο της κλάσης StringBuffer μπορεί να κρατήσει μια ακολουθία χαρακτήρων που είναι μετατρέψιμες και ασφαλείς με νήματα. Αυτό σημαίνει ότι είναι πολύ παρόμοιο με ένα αντικείμενο String, αλλά η ακολουθία χαρακτήρων (μήκος και περιεχόμενο) μπορεί να αλλάξει οποιαδήποτε στιγμή μετά την αρχικοποίηση του αντικειμένου StringBuffer. Ωστόσο, αυτό πρέπει να γίνει χρησιμοποιώντας τις συγκεκριμένες μεθόδους που παρέχονται από την κλάση StringBuffer. Υπάρχουν δύο βασικές λειτουργίες στην κλάση StringBuffer. Παρέχονται με τις μεθόδους append () και insert (). Αυτές οι μέθοδοι είναι υπερφορτωμένες, έτσι ώστε να είναι σε θέση να δέχονται δεδομένα οποιουδήποτε τύπου, όπως ακέραιος και μακρύς. Και οι δύο μέθοδοι μετατρέπουν πρώτα κάθε είσοδο σε μια συμβολοσειρά και στη συνέχεια προσθέτουν (προσδίδουν ή εισάγουν) τους χαρακτήρες της αντίστοιχης συμβολοσειράς στο υπάρχον αντικείμενο Stribbuffer. Η μέθοδος append () προσθέτει τη μετατραπείσα συμβολοσειρά στο τέλος του υπάρχοντος αντικειμένου StringBuffer, ενώ η μέθοδος insert () θα προσθέσει τους χαρακτήρες εισόδου στο καθορισμένο σημείο εισαγωγής.

Τι είναι το StringBuilder;

Η κατηγορία StringBuilder εισήχθη στο JDK 1. 5. Το API StringBuilder είναι πολύ παρόμοιο με το API StringBuffer. Στην πραγματικότητα, η τάξη StringBuilder εισήχθη στην πραγματικότητα ως αντικατάσταση της κλάσης StringBuffer (για εφαρμογές μονής σπείρας). Η κλάση StringBuilder ανήκει στη java. lang πακέτο και κληρονομείται από τη γενική java. lang. αντικείμενο. Είναι μια τελική τάξη και έτσι οι προγραμματιστές δεν μπορούν να την επεκτείνουν. Η κλάση StringBuilder υλοποιεί διεπαφές Serializable, Appendable και CharSequience. Ένα αντικείμενο της κλάσης StringBuilder μπορεί να κρατήσει μια ακολουθία χαρακτήρων που είναι μεταβλητό αλλά δεν είναι ασφαλές με νήματα. Αυτό σημαίνει ότι είναι πολύ παρόμοιο με ένα αντικείμενο String, αλλά το string μπορεί να αλλάξει ανά πάσα στιγμή.Ωστόσο, η κλάση StringBuilder δεν παρέχει συγχρονισμό και ως εκ τούτου ισχυρίζεται ότι είναι ταχύτερη από τη χρήση της κλάσης StringBuffer. Η κλάση StringBuilder παρέχει μεθόδους append () και insert () με ακριβώς παρόμοια λειτουργικότητα με την κλάση StringBuffer.

Ποια είναι η διαφορά μεταξύ του StringBuffer και του StringBuilder;

Αν και οι κλάσεις StringBuilder και StringBuffer μπορούν να χρησιμοποιηθούν για μεταβλητές ακολουθίες χαρακτήρων στην Java, έχουν μια βασική διαφορά. Σε αντίθεση με την κλάση StringBuffer, η κλάση StringBuilder δεν είναι ασφαλής για τα νήματα και δεν παρέχει συγχρονισμό. Επομένως, συνιστάται να χρησιμοποιηθεί η κλάση StringBuilder στη θέση της κλάσης StringBuffer σε εφαρμογές ενός νήματος, επειδή υποστηρίζεται ότι η κλάση StringBuilder θα είναι πολύ πιο γρήγορη από την κλάση StringBuffer (υπό κανονικές συνθήκες).