If I will write
String s=new String("XYZ");
String s1=new String("XYZ");
if(s.equals(s1)){
sop("True");
}
else{
sop("False");
}
This program will give me "True".
But When I am creating my own class suppose
class Employee{
public Employee(String name);
}
Employee e= new Employee("XYZ");
Employee e1 = neew Employee("XYZ");
if(e.equals(e1)){
sop("True");
}
else{
sop("False");
}
Then it will give the output as "False".
Can I know what is happening internally?
Answers were Sorted based on User's Feedback
Answer / ashish singh
String and other wrapper classes override equals() method of object class. SO when we compare it gives the appropriate result. while the employee class did not do it.
| Is This Answer Correct ? | 10 Yes | 0 No |
Answer / sindhu
in the first case equals method compares the sequence of characters pointed by s and s1. as both are same it returns true. in the second case it is comparing the references i.e addresses of objects e and e1. as both are not same, it returns false.
| Is This Answer Correct ? | 11 Yes | 4 No |
Answer / prachi
Equals() method of Qbject class checks whether reference id's are same or not.if overridden then it will check for the value contained in those reference id's.String class has overridden equals() so it checks for the value whereas Employee class hasn't so Object class' method runs and reference id's are compared.
| Is This Answer Correct ? | 2 Yes | 0 No |
Answer / k.packiya lakshmi
In String we can write a string in double quotes and equals is
one method of string but when we creating class it doesn't
know the method of equals.
| Is This Answer Correct ? | 3 Yes | 3 No |
Answer / vikas
Extending Ashish Singh's answer, If you want employee to return true for the use case you have mentioned, override your equals and hashcode method and check only for the String object that you have in employee class in your overridden equals method. It'll return true.
| Is This Answer Correct ? | 0 Yes | 0 No |
When should you use arraylist and when should you use linkedlist?
I Have a class abstract with one abstract method, so that method should override in the subclass, but i dont want to override, if i am not override what will happen? If compilation will occur then i dont want to give compilation error, then what we need to do??? See the sample program. public abstract class AbstractExample { public abstract void sampleMethod(); } public class AbstractExampleImple extends AbstractExample { }
Does a class inherit the constructors of its superclass in java programming?
How would you dynamically allocate memory to an array?
What is subsequence of a string?
What are the main features of java?
What do you mean by local class?
how can i take the inputs from users in java program?
what's diff between struts 1.1 & 1.2
we know that every java prog must follows OOPS Principles. Anybody can answer, HOW THE FOLLOWING PROGRAM FOLLOWS OOPS CONCEPTS i.e, Inheritance,Polymarphism,Encapsulation? class a{ public static void main(String args[]){ System.out.println("Hello World"); } }
What is a classloader in java?
Which list is sorted in java?