Ποιο είναι καλύτερο StringBuffer ή StringBuilder;
Ποιο είναι καλύτερο StringBuffer ή StringBuilder;

Βίντεο: Ποιο είναι καλύτερο StringBuffer ή StringBuilder;

Βίντεο: Ποιο είναι καλύτερο StringBuffer ή StringBuilder;
Βίντεο: Conan Unconquered Review [Γερμανικά; πολύγλωσσοι υπότιτλοι] Βάρβαρη στρατηγική σε πραγματικό χρόνο 2024, Νοέμβριος
Anonim

Η συμβολοσειρά είναι αμετάβλητη ενώ StringBuffer και το StringBuider είναι μεταβλητές κλάσεις. StringBuffer είναι νήμα ασφαλές και συγχρονισμένο ενώ StringBuilder δεν είναι, γι' αυτό StringBuilder είναι πιο γρήγορο από StringBuffer . Η συμβολοσειρά concat + τελεστής χρησιμοποιεί εσωτερικά StringBuffer ή StringBuilder τάξη.

Αντίστοιχα, ποιο είναι καλύτερο το StringBuffer ή το StringBuilder;

Σαν άποτέλεσμα, StringBuilder είναι ταχύτερο από StringBuffer . StringBuffer είναι μεταβλητό. Μπορεί να αλλάξει ως προς τη διάρκεια και το περιεχόμενο. StringBuffers είναι ασφαλή για νήματα, που σημαίνει ότι έχουν συγχρονισμένες μεθόδους για τον έλεγχο της πρόσβασης μόνο έτσι ένας νήμα μπορεί να έχει πρόσβαση α StringBuffer συγχρονισμένος κώδικας αντικειμένου κάθε φορά.

Ομοίως, γιατί το StringBuffer είναι πιο αργό από το StringBuilder; Το αντικείμενο που δημιουργήθηκε μέσω StringBuffer αποθηκεύεται στο σωρό. StringBuffer έχει τις ίδιες μεθόδους με το StringBuilder , αλλά κάθε μέθοδος σε StringBuffer συγχρονίζεται δηλαδή StringBuffer είναι ασφαλές με νήμα. Ετσι StringBuilder είναι γρηγορότερο από ο StringBuffer όταν καλούμε τις ίδιες μεθόδους κάθε κλάσης.

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

StringBuilder . StringBuilder είναι ίδιο με το StringBuffer , δηλαδή αποθηκεύει το αντικείμενο σε σωρό και μπορεί επίσης να τροποποιηθεί. Το κύριο διαφορά μεταξύ ο StringBuffer και StringBuilder είναι αυτό StringBuilder δεν είναι ασφαλές με νήμα. StringBuilder είναι γρήγορο καθώς δεν είναι ασφαλές με νήμα.

Πότε πρέπει να χρησιμοποιήσω το StringBuffer;

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

Συνιστάται: