الفرق بين متساوين و == في جافا
يمكن تقسيم أنواع البيانات في Java إلى فئتين:
1. نوع البيانات الأساسي ، المعروف أيضًا باسم نوع البيانات البدائية. بايت ، قصيرة ، شار ، int ، طويلة ، تعويم ، مزدوجة ، منطقية
تتم مقارنة المقارنة بينهما ، بتطبيق علامة مزدوجة (==) ، بقيمها.
2. نوع البيانات المتجهة (الفئة)
عندما يقارنون بـ (==) ، فإنهم يقارنون عنوان التخزين الخاص بهم في الذاكرة. لذلك ، ما لم تكن كائنات من نفس الجديد ، فإن النتيجة بعد المقارنة صحيحة ، وإلا فإن النتيجة بعد المقارنة خاطئة. جميع الفئات في جافا ترث من كائن الفئة الأساسية. يتم تعريف طريقة متساوية في الفئة الأساسية في الكائن. السلوك الأولي لهذه الطريقة هو عنوان ذاكرة كائن المقارنة ، ولكن في بعض مكتبات الفصل ، يتم كتابة هذه الطريقة. على سبيل المثال ، يكون للسلسلة والأعداد الصحيحة والتاريخ تنفيذها الخاص في هذه الفئات ، ولم يعد عنوان تخزين فئة المقارنة في ذاكرة الكومة.
للمقارنة المتساوية بين أنواع البيانات المركبة ، دون الكتابة فوق طريقة متساوية ، تستند المقارنة عن قيمة العنوان لموقع التخزين الخاص بهم في الذاكرة. نظرًا لأن طريقة المساواة في الكائن هي أيضًا بمقارنة علامة متساوية مزدوجة (==) ، وبالتالي فإن النتيجة بعد المقارنة هي نفس نتيجة العلامة المزدوجة المتساوية (==).
الفرق بين Java يساوي و = ، ==
1. الفرق بين == والمساواة
1. == هو المشغل
2. يساوي طريقة كائن السلسلة
هناك عمومًا نوعان من المقارنات
1. مقارنة أنواع البيانات الأساسية
2. مقارنة الكائنات المرجعية
1. مقارنة أنواع البيانات الأساسية
== ومتساوي مقارنة ما إذا كانت القيم متساوية ، إذا كانت متساوية ، فهي صحيحة ، وإلا فهي خاطئة
2. مقارنة الكائنات المرجعية
== والمساواة كلاهما مقارنة بما إذا كانت العناوين الموجودة في ذاكرة المكدس متساوية. إذا كان على قدم المساواة ، فهذا صحيح ، وإلا فهو خطأ.
يلاحظ:
1. السلسلة هي نوع بيانات مرجعية خاصة. == يقارن ما إذا كان العنوان المرجعي لكائن السلسلة هو نفسه ، ويقارن ما إذا كان المحتوى الموجود في المكدس متسقًا.
سلسلة ss = سلسلة جديدة ("ABC") ؛ String SSS = سلسلة جديدة ("ABC") ؛ if (ss == sss) {system.out.println ("ss == sss صحيح") ؛ } if (ss.equals (sss)) {system.out.println ("SS يساوي SSS صحيح") ؛ }إخراج وحدة التحكم:
SS! = SSS
SS يساوي SSS
يشير إلى أن عناوين ذاكرة SS و SS في المكدس مختلفة ، ولكن المحتويات في الكومة هي نفسها.
سلسلة ss = سلسلة جديدة ("ABC") ؛
سلسلة ssss = ss ؛
// تحكم على ما إذا كانت العناوين المرجعية لـ SS و SSSS في المكدس هي نفسها إذا (ss == ssss) {system.out.println ("ss == ssss") ؛ } آخر {system.out.println ("ss! = ssss") ؛ } // تحكم على ما إذا كانت محتويات ss و ssss في الكومة هي نفسها إذا (ss.equals (ssss)) {system.out.println ("ss يساوي ssss") ؛ } آخر {system.out.println ("SS لا يساوي SSSS") ؛ }إخراج وحدة التحكم:
SS == SSSS
SS يساوي SSSS
هذا يدل على أن SS و SSSS هي نفس الكائنات وأن لديهم نفس المحتوى في الكومة
2. مقارنة الكائنات المرجعية
testbean obj1 = new testbean () ؛ testbean obj2 = new testbean () ؛ Testbean OBJ3 = OBJ1 ؛ if (obj1 == obj2) {system.out.println ("OBJ1 == OBJ2") ؛ } آخر {system.out.println ("OBJ1! = OBJ2") ؛ } if (obj1 == obj3) {system.out.println ("OBJ1 == OBJ3") ؛ } آخر {system.out.println ("OBJ1! = OBJ3") ؛ }إخراج وحدة التحكم:
OBJ1! = OBJ2
OBJ1 == OBJ3
وهذا يعني أن OBJ1 و OBJ2 ليسا نفس الكائن ، والعنوان المرجعي في المكدس مختلف
OBJ1 و OBJ3 هما نفس الكائنات ، والعنوان المرجعي في المكدس هو نفسه
2. الفرق بين = ومساواة ==
= يمثل المهمة ، أي تعيين القيمة على يمين = إلى المتغير على اليسار. يساوي و == العمليات
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!