Sobes.tech
Junior — Middle

Τι είναι η δεξαμενή λογιών συμβολοσειρών και γιατί χρειάζεται στη διαχείριση μνήμης;

sobes.tech AI

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

Ο Πάγκος Συμβολοσειρών (String Pool) είναι μια ειδική περιοχή μνήμης στη Java όπου αποθηκεύονται μοναδικά αντικείμενα συμβολοσειρών. Όταν δημιουργείται ένα λεκτικό συμβολοσειράς, η JVM ελέγχει αν ήδη υπάρχει στον πάγκο. Αν ναι, επιστρέφει μια αναφορά σε αυτόν; αν όχι, προσθέτει ένα νέο.

Ποιος είναι ο σκοπός;

  • Εξοικονόμηση μνήμης: οι ίδιες συμβολοσειρές αποθηκεύονται μία φορά.
  • Βελτίωση απόδοσης: η σύγκριση συμβολοσειρών μέσω αναφοράς (==) είναι δυνατή για τα λεκτικά του πάγκου.

Παράδειγμα:

String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, και οι δύο αναφορές δείχνουν στο ίδιο αντικείμενο στον πάγκο

String s3 = new String("hello");
System.out.println(s1 == s3); // false, το s3 είναι ένα νέο αντικείμενο εκτός του πάγκου

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