لماذا يكون السلسلة لا تغير في جافا هو أحد أسئلة المقابلة الشائعة. السلسلة هي واحدة من أكثر الفئات استخدامًا في أي لغة برمجة. نحن نعلم أن السلسلة لا تتغير وتكون نهائية في جافا. تحافظ بيئة تشغيل جافا على بركة السلسلة مما يجعلها فئة خاصة.
لماذا تكون السلسلة لا تتغير في جافا؟
لنلق نظرة على بعض فوائد عدم تغير السلسلة، والتي ستساعد في فهم سبب عدم تغير السلسلة في جافا.
- بركة السلسلة ممكنة فقط لأن السلسلة لا تتغير في جافا. بهذه الطريقة، توفر بيئة تشغيل جافا الكثير من مساحة الذاكرة لأن متغيرات السلسلة المختلفة يمكن أن تشير إلى نفس المتغير السلسلة في البركة. إذا لم تكن السلسلة لا تتغير، فلن يكون بإمكاننا القيام بالتجزئة السلسلة لأن أي تغيير في القيمة لأي متغير سيتم انعكاسه في المتغيرات الأخرى أيضًا.
- إذا كانت السلسلة غير قابلة للتغيير، فسيتسبب ذلك في تهديد أمان شديد للتطبيق. على سبيل المثال، اسم المستخدم وكلمة المرور لقاعدة البيانات يتم تمريرهما كسلسلة للحصول على اتصال بقاعدة البيانات، وفي برمجة الشبكات نقوم بتمرير تفاصيل المضيف والمنفذ كسلسلة. نظرًا لأن السلسلة غير قابلة للتغيير، فلا يمكن تغيير قيمتها، وإلا فإن أي هاكر يمكنه تغيير القيمة المشار إليها لتسبب مشاكل أمان في التطبيق.
- نظرًا لأن السلسلة غير قابلة للتغيير، فإنها آمنة للاستخدام مع التعدد الخطي. يمكن مشاركة مثيل واحد من السلسلة عبر خيوط مختلفة، مما يتجنب استخدام التزامن لضمان سلامة الخيط. السلاسل آمنة ضمنيًا للاستخدام في الخيوط.
- تُستخدم السلاسل في محمل فئات جافا والثبات يوفر الأمان للتأكد من تحميل الفئة الصحيحة بواسطة محمل الفئات. على سبيل المثال، فكر في حالة تحاول فيها تحميل فئة
java.sql.Connection
ولكن تم تغيير القيمة المشار إليها لتصبح فئةmyhacked.Connection
التي يمكن أن تفعل أشياء غير مرغوب فيها في قاعدة البيانات الخاصة بك. - نظرًا لأن السلسلة غير قابلة للتغيير، يتم تخزين قيمة الكود الهاش لها عند إنشائها ولا يحتاج إلى إعادة حسابه مرة أخرى. وهذا ما يجعلها مرشحًا رائعًا للاستخدام كمفتاح في خريطة، ومعالجتها أسرع من كائنات المفاتيح في خريطة الهاش. ولهذا السبب، تُستخدم السلسلة على نطاق واسع كمفاتيح HashMap.
أعلاه بعض الأسباب التي يمكنني التفكير فيها والتي تظهر فوائد استخدام السلاسل النصية الغير قابلة للتعديل. إنها ميزة رائعة في فئة السلاسل النصية في جافا وتجعلها مميزة. اقرأ هذه المقالة لمعرفة كيفية كتابة فئة النص الغير قابل للتعديل الخاصة بك.
يمكنك مراجعة المزيد من أمثلة سلاسل جافا من مستودعنا في GitHub.
Source:
https://www.digitalocean.com/community/tutorials/string-immutable-final-java