== equal() VS

Hi, here is the differnce between to operations:

obj1.equal(obj2) :

Compares values for equality. Because this method is defined in the Object class, from which all other classes are derived, it's automatically defined for every class. However, it doesn't perform an intelligent comparison for most classes unless the class overrides it. It has been defined in a meaningful way for most Java core classes. If it's not defined for a (user) class, it behaves the same as ==.

obj1==obj2:

Compares references, not values. The use of == with object references is generally limited to the following:

  • – Comparing to see if a reference is null.
  • – Comparing two enum values. This works because there is only one object for each enum constant.
  • – You want to know if two references are to the same object
Example:
    String s1 = "CR_Dev";
    String s2 = new String(s1);    System.out.println(s1 + " equals " + s2 + " -> " + s1.equals(s2)); // True, equal Values
    System.out.println(s1 + " == " + s2 + " -> " (s1 == s2)); // False, not same reference

מודעות פרסומת
מאת chenreuven פורסם ב-Java

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s