Java String intern ()

Η μέθοδος Java String intern () επιστρέφει μια κανονική αναπαράσταση του αντικειμένου συμβολοσειράς.

Η σύνταξη της intern()μεθόδου συμβολοσειράς είναι:

 string.intern()

Εδώ, το string είναι ένα αντικείμενο της Stringκλάσης.

intern () Παράμετροι

Η intern()μέθοδος δεν λαμβάνει παραμέτρους.

intern () Επιστροφή αξία

  • επιστρέφει μια κανονική αναπαράσταση της συμβολοσειράς

Τι είναι το Java String Interning;

Το String interning διασφαλίζει ότι όλες οι συμβολοσειρές με το ίδιο περιεχόμενο χρησιμοποιούν την ίδια μνήμη.

Ας υποθέσουμε, εμείς αυτές οι δύο χορδές:

 String str1 = "xyz"; String str2 = "xyz";

Δεδομένου ότι str1και τα δύο και str2έχουν το ίδιο περιεχόμενο, και οι δύο αυτές συμβολοσειρές θα μοιράζονται την ίδια μνήμη. Η Java ενεργοποιεί αυτόματα τα γράμματα των συμβολοσειρών.

Ωστόσο, εάν δημιουργήσετε συμβολοσειρές με τη χρήση της newλέξης-κλειδιού, αυτές οι συμβολοσειρές δεν θα έχουν την ίδια μνήμη. Για παράδειγμα,

 class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false ) )

Όπως μπορείτε να δείτε από αυτό το παράδειγμα, τόσο το str1 όσο και το str2 έχουν το ίδιο περιεχόμενο. Ωστόσο, δεν είναι ίσοι επειδή δεν μοιράζονται την ίδια μνήμη.

Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε χειροκίνητα τη intern()μέθοδο έτσι ώστε να χρησιμοποιείται η ίδια μνήμη για συμβολοσειρές με το ίδιο περιεχόμενο.

Παράδειγμα: Java String intern ()

 class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); // str1 and str2 doesn't share the same memory pool System.out.println(str1 == str2); // false // using the intern() method // now both str1 and str2 share the same memory pool str1 = str1.intern(); str2 = str2.intern(); System.out.println(str1 == str2); // true ) )

Όπως μπορείτε να δείτε, τόσο το str1 όσο και το str2 έχουν το ίδιο περιεχόμενο, αλλά αρχικά δεν είναι ίσο.

Στη συνέχεια, χρησιμοποιούμε τη intern()μέθοδο έτσι ώστε τα str1 και str2 να χρησιμοποιούν την ίδια ομάδα μνήμης. Μετά τη χρήση intern(), τα str1 και str2 είναι ίδια.

ενδιαφέροντα άρθρα...