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 είναι ένα νέο αντικείμενο εκτός του πάγκου
Έτσι, ο πάγκος συμβολοσειρών βοηθά στη διαχείριση μνήμης με αποδοτικό τρόπο όταν εργαζόμαστε με συμβολοσειρές.