الفرق بين == و === في Java
مرحبًا بالجميع! لا أستطيع فهم عوامل المقارنة في Java. أعلم أن في JavaScript يوجد مقارنة صارمة عبر ===، لكن في Java يبدو أن هذا العامل غير موجود. عند محاولة كتابة ===، يظهر خطأ من المترجم.
حاولت استخدام == لمقارنة السلاسل النصية، لكني حصلت على نتائج غير متوقعة. على سبيل المثال، هذا الكود:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false
System.out.println(a.equals(b)); // trueلماذا يُرجع == القيمة false إذا كانت السلاسل متطابقة؟ كنت أتوقع أن == سيقارن المحتوى، كما في JavaScript. قرأت الوثائق — في Java، == يقارن المراجع (references) للكائنات، وليس قيمها. بالنسبة للسلاسل النصية، يجب استخدام equals().
لكن السؤال هو: هل يوجد في Java ما يعادل المقارنة الصارمة === من JavaScript؟ أم أن الطريقة الوحيدة