مفهوم String Interning | حاتم
في المقال ذكرت أنه لا يفضل استعمال الطريقة الثانية (بالمناسبة ما اسم الطريقة الثانية؟) إلا في حالات خاصة، هل يمكنك ذكر مثالا على تلك الحالات
أيضا هل من الأفضل إستعمال الدالة Equals في الحالتين أم يفضل استعمال كل طريقة بما يناسبها؟
الأولى Literal String وهي ترتبط بالمثال الاول والثانية هي Object String وترتبط بالمثال الثاني.
دالة equals يصلح استخدامها عند استخدام Object String لانها تقارن القيمة ولا تقارن الرقم المرجعي لغرفة الذاكرة وبما انه يتم حفظ كل كائن من هذا النوع في مكان خاص به بالذاكرة فأنت مجبر على ايجاد طريقة لمقارنة القيمة فقط لانها الدليل الوحيد على التساوي وهي بالطبع دالة equals.
اما معامل المساواه (==) فيصلح عند استخدام Literal String. حيث ان اي قيمتين متساويتين ستكونان بلاشك في مكان واحد بالذاكرة وبما ان معامل المساواة يقارن الرقم المرجعي في الذاكرة فبالتالي ان تساوي المرجع يعني تساوي القيم والعكس صحيح ! وبالمناسبة يمكنك استخدام الدالة السابقة هنا ايضا !
- اما بخصوص السيناريوهات فلا تحضرني في الوقت الحالي لانها نادرة جدا لكن سأجهتد بالبحث للحصول على بعض منها ان شاء الله !
التعليقات