آموزش متد intern در جاوا
سلام توسعه دهندگان عزیز در این سری از آموزش برنامه نویسی جاوا به آموزش متد intern در جاوا می پردازیم از متود intern به منظور جستجو در رشته استفاده می شود متود intern جزو متودهای کاربردی در برنامه نویسی جاوا است در ادامه با ما همراه باشید تا نحوه استفاده از متود intern را یاد گیرید.
مثل همیشه ابتدا Syntax مربوط به متود intern را بررسی خواهیم کرد.
1 | public String intern() |
همانطور که می بینید خروجی متود بالا رشته و هیچ ورودی ندارد. شاید استفاده از کلمه رشته برای متود intern کمی اشتباه باشد از متود intern به منظور برگرداندن رشته از حافظه pool استفاده می شود این متود استانداردی از یک رشته را برمی گرداند نه خود رشته را و با کار متود equals را انجام نمیدهد به مثال توجه کنید شاید کمی گیج شده باشید !
یک کلاس به نام InternExample ایجاد کنید و کد های زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 | public class InternExample{ public static void main(String args[]){ String s1=new String("hello"); String s2="hello"; String s3=s1.intern(); System.out.println(s1==s2); System.out.println(s2==s3); } } |
در بالا اگر قبول داشته باشید مکان یک رشته new شده با یک رشته معمولی فرق دارد زمانی که ما متغیر s1 را بهش intern میزنیم همانند یک رشته new نشده می شود پس نتیجه اولی برابر با false و دومی برابر با true خواهد آمد زیر s2 و s3 از نظر آدرس حافظه pool یکی هستند ولی ولی s1 و s2 اینطور نیستند.
خروجی کد بالا
1 2 | false true |
یک مثال دیگر برای درک بهتر یک کلاس به نام TestString ایجاد کنید و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class TestString { public static void main(String[] args) { String s1 = "Test"; String s2 = "Test"; String s3 = new String("Test"); final String s4 = s3.intern(); System.out.println(s1 == s2); System.out.println(s2 == s3); System.out.println(s3 == s4); System.out.println(s1 == s3); System.out.println(s1 == s4); System.out.println(s1.equals(s2)); System.out.println(s2.equals(s3)); System.out.println(s3.equals(s4)); System.out.println(s1.equals(s4)); System.out.println(s1.equals(s3)); } } |
خروجی مد بالا همانند زیر خواهد بود.
1 2 3 4 5 6 7 8 9 10 11 | //Output true false false false true true true true true true |
در کد بالا تفاوت intern و equals به خوبی نمایان می شود.
این آموزش به پایان رسید.
موفق و پیروز باشید.