السلسلة هي نوع لا مفر منه من المتغيرات أثناء كتابة أي برنامج تطبيقي. تُستخدم مراجع السلسلة لتخزين سمات مختلفة مثل اسم المستخدم وكلمة المرور وما إلى ذلك. في Java، كائنات السلسلة غير قابلة للتغيير . غير قابل للتغيير يعني ببساطة أنه غير قابل للتعديل أو غير قابل للتغيير.
مفاتيح التعديل
بمجرد إنشاء كائن سلسلة، لا يمكن تغيير بياناته أو حالته ولكن يتم إنشاء كائن سلسلة جديد.
دعونا نحاول فهم مفهوم الثبات من خلال المثال الموضح أدناه:
Testimmutablestring.java
class Testimmutablestring{ public static void main(String args[]){ String s='Sachin'; s.concat(' Tendulkar');//concat() method appends the string at the end System.out.println(s);//will print Sachin because strings are immutable objects } }اختبره الآن
انتاج:
Sachin
الآن يمكن فهم ذلك من خلال الرسم البياني أدناه. هنا لم يتم تغيير Sachin ولكن تم إنشاء كائن جديد باستخدام Sachin Tendulkar. ولهذا السبب تُعرف السلسلة بأنها غير قابلة للتغيير.
كما ترون في الشكل أعلاه أنه يتم إنشاء كائنين ولكن س لا يزال المتغير المرجعي يشير إلى 'Sachin' وليس إلى 'Sachin Tendulkar'.
ولكن إذا قمنا بتعيينه بشكل صريح للمتغير المرجعي، فسوف يشير إلى كائن 'Sachin Tendulkar'.
على سبيل المثال:
Testimmutablestring1.java
للحلقات جافا
class Testimmutablestring1{ public static void main(String args[]){ String s='Sachin'; s=s.concat(' Tendulkar'); System.out.println(s); } }اختبره الآن
انتاج:
Sachin Tendulkar
في مثل هذه الحالة، يشير s إلى 'Sachin Tendulkar'. يرجى ملاحظة أن كائن Sachin لا يزال لم يتم تعديله.
لماذا تكون كائنات السلسلة غير قابلة للتغيير في Java؟
كما تستخدم Java مفهوم السلسلة الحرفية. لنفترض أن هناك 5 متغيرات مرجعية، تشير جميعها إلى كائن واحد 'Sachin'. إذا قام متغير مرجعي واحد بتغيير قيمة الكائن، فسوف يتأثر بجميع المتغيرات المرجعية. هذا هو السبب في أن كائنات السلسلة غير قابلة للتغيير في Java.
فيما يلي بعض ميزات السلسلة التي تجعل كائنات السلسلة غير قابلة للتغيير.
1. محمل الفئة:
يستخدم ClassLoader في Java كائن سلسلة كوسيطة. ضع في اعتبارك أنه إذا كان كائن السلسلة قابلاً للتعديل، فقد تتغير القيمة وقد تختلف الفئة التي من المفترض تحميلها.
لتجنب هذا النوع من سوء التفسير، السلسلة غير قابلة للتغيير.
2. موضوع آمن:
نظرًا لأن كائن السلسلة غير قابل للتغيير، فلا يتعين علينا الاهتمام بالمزامنة المطلوبة أثناء مشاركة كائن عبر سلاسل رسائل متعددة.
3. الأمن:
القائمة في جافا
كما رأينا في تحميل الفئة، تتجنب كائنات السلسلة غير القابلة للتغيير المزيد من الأخطاء عن طريق تحميل الفئة الصحيحة. وهذا يؤدي إلى جعل برنامج التطبيق أكثر أمانًا. النظر في مثال على البرامج المصرفية. لا يمكن لأي متطفل تعديل اسم المستخدم وكلمة المرور لأن كائنات السلسلة غير قابلة للتغيير. وهذا يمكن أن يجعل برنامج التطبيق أكثر أمانًا.
4. مساحة الكومة:
تساعد ثبات السلسلة على تقليل الاستخدام في ذاكرة الكومة. عندما نحاول الإعلان عن كائن سلسلة جديد، يتحقق JVM مما إذا كانت القيمة موجودة بالفعل في تجمع السلسلة أم لا. إذا كان موجودًا، فسيتم تعيين نفس القيمة للكائن الجديد. تسمح هذه الميزة لـ Java باستخدام مساحة الكومة بكفاءة.
لماذا تعتبر فئة السلسلة نهائية في Java؟
السبب وراء كون فئة السلسلة نهائية هو أنه لا يمكن لأحد تجاوز أساليب فئة السلسلة. حتى يتمكن من توفير نفس الميزات لكائنات السلسلة الجديدة وكذلك للكائنات القديمة.