Αμετάβλητη συμβολοσειρά στην Java: Όλα όσα πρέπει να γνωρίζετε



Αυτό το άρθρο θα σας δώσει μια λεπτομερή και περιεκτική γνώση του Immutable String στην Java, γιατί είναι σημαντικό;

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

Εισαγωγή στην αμετάβλητη συμβολοσειρά στην Java

Η ομάδα συμβολοσειρών έχει αντικείμενα συμβολοσειράς που αποθηκεύονται στην κρυφή μνήμη λόγω των οποίων η συμβολοσειρά είναι αμετάβλητη. Πολλοί πελάτες μοιράζονται τις προσωρινές αποθηκευμένες συμβολοσειρές. Οι κίνδυνοι που ενέχονται στη δράση ενός πελάτη θα επηρεάσουν όλους τους άλλους πελάτες.





Για παράδειγμα, όταν ένας πελάτης αλλάξει την τιμή συμβολοσειράς 'Δοκιμή' σε 'ΔΟΚΙΜΗ', όλοι οι άλλοι πελάτες θα δουν την αλλαγή της τιμής. Καθώς η προσωρινή αποθήκευση αντικειμένων συμβολοσειράς ήταν σημαντική για την απόδοση, η κλάση Immutable String απέφυγε τον κίνδυνο. Επίσης, Η συμβολοσειρά έγινε τελική, έτσι ώστε το αμετάβλητο της κλάσης String να μην διακυβεύεται. Παράδειγμα Αμετάβλητο, προσωρινή αποθήκευση, υπολογισμός κωδικού κατακερματισμού με επέκταση και παράκαμψη συμπεριφορών.

Κλειδί Hashmap

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



tutorial mysql για αρχάριους με παραδείγματα

Συμβολοσειρά με δυνατότητα κατακερματισμού σε Java
Η αμετάβλητη κλάση συμβολοσειράς στην Java είναι η πιο συχνή ερώτηση .Η συζήτηση ξεκινά με, τι είναι μια συμβολοσειρά, πώς διαφέρει από τη συμβολοσειρά στο C ++, και στη συνέχεια η ερώτηση που ακολουθεί είναι αμετάβλητα αντικείμενα στην Java, οφέλη του αμετάβλητου αντικειμένου, ποια είναι η χρήση τους και σενάρια για τη χρήση τους.

Ανάγκη για αμετάβλητη συμβολοσειρά στην Java

Δύο λόγοι είναι σημαντικοί για να πούμε γιατί η κλάση Immutable String γίνεται στην Java:

1. Σε καμία περίπτωση δεν είναι δυνατόν να υπάρχει ένα αντικείμενο συμβολοσειράς / κυριολεκτικό.



Ας αναφερθούμε στο παρακάτω παράδειγμα:

Το 'Test' μπορεί να αναφέρεται από πολλές μεταβλητές αναφοράς. Εάν κάποιο από αυτά αλλάξει την αξία για άλλους, αυτό θα επηρεαστεί επίσης. Ας δούμε πώς.

Συμβολοσειρά A = 'Δοκιμή'
Συμβολοσειρά B = «Δοκιμή»


String A που ονομάζεται, 'Test' .toUpperCase () που αλλάζει το ίδιο αντικείμενο σε,'ΔΟΚΙΜΗ'έτσι το B θα είναι επίσης «ΔΟΚΙΜΗ» που δεν χρειάζεται. Ακολουθεί ένα διάγραμμα που μας λέει πώς δημιουργείται το String στη σωστή μνήμη και στο String literal pool.

2. Η συμβολοσειρά είχε χρησιμοποιηθεί ευρέως ως παράμετρος για πολλές κλάσεις Java. Για παράδειγμα, όταν ανοίγουμε μια σύνδεση δικτύου, μπορούμε να περάσουμε το όνομα κεντρικού υπολογιστή και τον αριθμό θύρας ως συμβολοσειρά, για το άνοιγμα της σύνδεσης βάσης δεδομένων μπορούμε να περάσουμε τη διεύθυνση URL της βάσης δεδομένων ως συμβολοσειρά.


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

Μια αμετάβλητη συμβολοσειρά μπορεί να μοιραστεί με ασφάλεια νήματα, η οποία είναι σημαντική για τον προγραμματισμό πολλαπλών νημάτων. Μια αμετάβλητη παρουσία συμβολοσειράς είναι ασφαλής στο νήμα στην Java, οπότε δεν χρειάζεται να συγχρονίσετε τη λειτουργία String εξωτερικά για να αποφύγετε προβλήματα συγχρονισμού στην Java. Ένα άλλο σημαντικό σημείο που πρέπει να σημειωθεί είναι η διαρροή μνήμης που προκαλείται από το Substring, το οποίο δεν είναι ένα θέμα που σχετίζεται με το νήμα αλλά κάτι που πρέπει να γνωρίζετε.

Με αυτό, φτάνουμε στο τέλος αυτού του άρθρου «Αμετάβλητη συμβολοσειρά σε Java». ντο διάλεξε το από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java.

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