Sobes.tech
Junior — Middle

Ποια είναι τα διαφορές μεταξύ των κλάσεων String και StringBuilder στη Java και σε ποιες περιπτώσεις είναι προτιμότερο να χρησιμοποιείτε το καθένα;

sobes.tech AI

Απάντηση από AI

Στην Java, η κλάση String αντιπροσωπεύει μια αμετάβλητη (immutable) συμβολοσειρά. Κάθε φορά που η συμβολοσειρά αλλάζει, δημιουργείται ένα νέο αντικείμενο, κάτι που μπορεί να είναι αναποτελεσματικό σε πολλαπλές λειτουργίες συνημμένων.

Το StringBuilder είναι ένας μεταβλητός (mutable) buffer χαρακτήρων που επιτρέπει την αποτελεσματική αλλαγή της συμβολοσειράς χωρίς να δημιουργούνται νέα αντικείμενα.

Πότε να το χρησιμοποιήσετε:

  • String — όταν η συμβολοσειρά δεν αλλάζει μετά τη δημιουργία της ή οι αλλαγές είναι ελάχιστες.
  • StringBuilder — για συχνές αλλαγές στη συμβολοσειρά, π.χ. σε βρόχους, κατά την κατασκευή μεγάλων συμβολοσειρών.

Παράδειγμα:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; i++) {
    sb.append(i).append(", ");
}
String result = sb.toString();