ما هو بركه سلسلة جافا؟

بما يشير الاسم، String Pool في جافا هو مجموعة من السلاسل المخزنة في ذاكرة الكومة في جافا. نعلم أن السلسلة هي فئة خاصة في جافا ويمكننا إنشاء كائنات سلسلة باستخدام مشغل جديد بالإضافة إلى توفير قيم في علامات اقتباس مزدوجة.

String Pool في جافا

هنا هو مخطط يوضح بوضوح كيفية الحفاظ على String Pool في مساحة الذاكرة الرئيسية في جافا وما يحدث عند استخدام طرق مختلفة لإنشاء السلاسل. يكون String Pool ممكنًا فقط لأن الـ String غير قابل للتغيير في جافا وتنفيذه لمفهوم تجميع السلاسل. يعتبر String pool أيضًا مثالًا على نمط التصميم الخفيف. يساعد String pool في توفير الكثير من المساحة لبيئة تشغيل جافا على الرغم من أنه يستغرق وقتًا أكثر لإنشاء السلسلة. عند استخدام علامات اقتباس مزدوجة لإنشاء سلسلة، يبحث أولاً عن سلسلة بنفس القيمة في String pool، إذا تم العثور عليها فإنها تقوم بإرجاع المرجع وإلا يقوم بإنشاء سلسلة جديدة في الـ pool ومن ثم يقوم بإرجاع المرجع. ومع ذلك، باستخدام عامل new، نجبر فئة String على إنشاء كائن سلسلة جديد في مساحة الذاكرة الرئيسية. يمكننا استخدام طريقة intern() لوضعه في الـ pool أو الإشارة إلى كائن سلسلة آخر من String pool بنفس القيمة. هنا برنامج جافا لصورة String Pool:

package com.journaldev.util;

public class StringPool {

    /**
     * Java String Pool example
     * @param args
     */
    public static void main(String[] args) {
        String s1 = "Cat";
        String s2 = "Cat";
        String s3 = new String("Cat");
        
        System.out.println("s1 == s2 :"+(s1==s2));
        System.out.println("s1 == s3 :"+(s1==s3));
    }

}

ناتج البرنامج المذكور أعلاه هو:

s1 == s2 :true
s1 == s3 :false

قراءة موصى بها: فئة السلسلة في جافا

كم سلسلة يتم إنشاؤها في بركة السلاسل؟

في بعض الأحيان في مقابلة جافا، قد يُطلب منك سؤال حول بركة السلاسل. على سبيل المثال، كم سلسلة يتم إنشاؤها في البيان التالي؛

String str = new String("Cat");

في البيان أعلاه، سيتم إنشاء سلسلة واحدة أو اثنتين. إذا كانت هناك سلسلة نصية “Cat” موجودة بالفعل في البركة، فسيتم إنشاء سلسلة واحدة فقط “str” في البركة. إذا لم تكن هناك سلسلة نصية “Cat” في البركة، فسيتم إنشاؤها أولاً في البركة ثم في الذاكرة الخردة، لذا سيتم إنشاء مجموع 2 كائن نصي. اقرأ: أسئلة مقابلة سلسلة جافا

Source:
https://www.digitalocean.com/community/tutorials/what-is-java-string-pool