ما الفرق بين == و equals() في Java؟
مرحبًا أيها الزملاء! لقد بدأت للتو في تعلم Java وواجهت موقفًا غير مفهوم عند مقارنة السلاسل النصية. كتبت كودًا بسيطًا:\n\n```java\nString a = "Привет";\nString b = "Привет";\nString c = new String("Привет");\n\nSystem.out.println(a == b); // true\nSystem.out.println(a == c); // false\nSystem.out.println(a.equals(c)); // true\n```\n\nلماذا يُرجع `a == b` القيمة `true`، بينما يُرجع `a == c` القيمة `false`؟ وما علاقة `equals()` بهذا؟ كنت أعتقد أن كلا العاملين يقارنان القيم. أين المشكلة؟ اشرحوا لي، من فضلكم، كمبتدئ، متى أستخدم `==` ومتى أستخدم `equals()`. يهمني بشكل خاص كيف يعمل هذا مع السلاسل النصية والكائنات الأخرى.\n\n<<>>\n
الفرق الرئيسي: مقارنة المراجع مقابل مقارنة المحتوى
\n\nالفرق الجوهري بين == و equals() هو أن == يقارن المراجع (references) بينما equals() يقارن المحتوى (content).