מה זה String.intern() ב-Java?

Mh Zh String Intern B Java



בג'אווה, ה' מתמחה() 'שיטה משמשת כדי להבטיח שאם כמות גדולה של מחרוזת מאחסנת נתונים אז מחרוזות שיש להן אותו אלמנט חולקות את אותו זיכרון. שיטה זו שימושית מאוד לצמצום שטח הזיכרון עבור התוכנית. לדוגמה, אם יש לך רשימה ענקית של שמות עובדים שבהם השם ' ג'ֵק ' מופיע עשר פעמים. ה ' מתמחה() שיטת ' תבטיח כי ' ג'ֵק ' תופס רק מקום בודד בזיכרון.

פוסט זה ידון בשימוש בשיטת String.intern() ב-Java.







מה זה String.intern() ב-Java?

ה ' מתמחה() שיטת ” ב-Java משמשת להחזרת ההפניה לאובייקט המחרוזת המוצהר. עם זאת, אם אובייקט המחרוזת היה קיים עם אותו תוכן/נתונים במאגר המחרוזות, הוא יחזיר את ההפניה של המחרוזת הקודמת. יתר על כן, אם המחרוזת לא קיימת במאגר המחרוזות היא תוסיף את המחרוזת החדשה וההתייחסות שלה למאגר המחרוזות.



תחביר

כדי להשתמש בשיטה המוצהרת, פשוט עקוב אחר התחביר המופיע להלן:



חוּט . מתמחה ( )

בדוגמה זו, נדון מדוע יש צורך להשתמש ב-' מתמחה() שיטת ' ב-Java כאשר המחרוזת נוצרת בערימה באמצעות ' חוּט() 'קונסטרוקטור. ראשית, אובייקט מחרוזת נוצר באמצעות ' חוּט() 'קונסטרוקטור. לאחר מכן, הנתונים של המחרוזת מועברים כפרמטר לאובייקט זה ומאוחסנים במשתנה:





חוּט א = חָדָשׁ חוּט ( 'ברוכים הבאים ל-Linuxhint.' ) ;

אובייקט מחרוזת נוסף נוצר על ידי ביצוע אותו הליך:

חוּט ב = חָדָשׁ חוּט ( 'ברוכים הבאים ל-Linuxhint' ) ;

קרא את ' שיטת println()' והגדר 'a=b ' כטענה לשיטה זו. זה יחזיר את התוצאה כ-false מכיוון שלכל מחרוזת יש רווח משלה בזיכרון:



מערכת . הַחוּצָה . println ( א == ב ) ;

ניתן לשים לב שהפלט של הדוגמה האמורה מחזירה false:

דוגמה 1: שיטה String.intern() לבדיקת אובייקטי מחרוזת

בדוגמה זו, שני אובייקטי מחרוזת נוצרים באמצעות ' חוּט() ” בנאי ומחרוזת מועברת לבנאי כארגומנט. לאחר מכן, הפעל את ' מתמחה() ' השיטה עבור כל מחרוזת ואחסן את המחרוזת הראשונה במשתנה ' א ' והשני ב' ב '. בדוק את המצב ' א=ב ' והשתמש ב-' println() ' כדי להציג את התוצאה:

חוּט א = חָדָשׁ חוּט ( 'ברוכים הבאים ל-Linuxhint' ) . מתמחה ( ) ;
חוּט ב = חָדָשׁ חוּט ( 'ברוכים הבאים ל-Linuxhint' ) . מתמחה ( ) ;
מערכת . הַחוּצָה . println ( א == ב ) ;

כתוצאה מכך, הוא מחזיר את ' נָכוֹן ' ערך כי ' מתמחה() השיטה מבטיחה שכל מחרוזת תופסת מקום באותו זיכרון לאחסון נתוני מחרוזת:

דוגמה 2: שיטה String.intern() לבדיקת מחרוזת ואובייקט מחרוזת

בדוגמה המוצהרת הזו, מחרוזות שונות נוצרות ומאוחסנות במשתנים השונים. לשם כך, ראשית, משתנה מאותחל עם ערך מחרוזת ' לינוקס ”:

חוּט א = 'לינוקס' ;

השתמש ב' מתמחה() שיטת ' על ידי גישה למחרוזת ' א ' ואחסן אותו במשתנה ' ב ”:

חוּט ב = א. מתמחה ( ) ;

אובייקט חדש מסוג מחרוזת נוצר בעזרת ' חוּט() 'קונסטרוקטור ומעביר את ' לינוקס ' כפרמטר לבנאי זה. לאחר מכן, אחסן אותו במשתנה ' ג ”:

חוּט ג = חָדָשׁ חוּט ( 'לינוקס' ) ;

קרא את ' מתמחה() שיטת ' על ידי גישה למשתנה ' ג ' ואחסן את התוצאה ב' ד ”:

חוּט ד = ג. מתמחה ( ) ;

כעת, השווה את המחרוזות שנוצרו זו עם זו. לשם כך, הפעל את ' println() ' השיטה והעבירו את הפרמטר לפי קטע הקוד שלהלן:

מערכת . הַחוּצָה . println ( א == ב ) ;
מערכת . הַחוּצָה . println ( א == ג ) ;
מערכת . הַחוּצָה . println ( א == ד ) ;
מערכת . הַחוּצָה . println ( ב == ג ) ;
מערכת . הַחוּצָה . println ( ב == ד ) ; מערכת . הַחוּצָה . println ( ג == ד ) ;

הפלט של כל הצהרה מתאימה מודפס על המסוף. מיפינו את הפלט עם כל משפט:

זה הכל לגבי שיטת string.intern() ב-Java.

סיכום

ה ' String.intern() ' השיטה ב-Java מחזירה את ההפניה לאובייקט המחרוזת המוצהר. עם זאת, אם אובייקט המחרוזת היה קיים עם אותו תוכן/נתונים במאגר המחרוזות, הוא יחזיר את ההפניה של המחרוזת הקודמת. פוסט זה ציין מקרי שימוש שונים בשיטת String.intern() ב-Java.