Java Reflection Class

Why is second SOP showing output as true here, I was hoping it would display false like first SOP ?

public class reflect1 {

  public static void main(String[] args) {

       Reflect1A obj1 = new Reflect1A();
       Reflect1A obj2 = new Reflect1A();

       System.out.println(obj1 == obj2);

       Class c1 = obj1.getClass();
       Class c2 = obj2.getClass();

       System.out.println(c1 == c2);

       } 
  }

class Reflect1A {

}
Jon Skeet
people
quotationmark

The values of obj1 and obj2 refer to different objects - when you use == in Java and both operands are references, the result is to compare whether those references refer to the exact same object. In this case you've got two different objects, so the references are not the same.

However, they're both of the same class, so that's why c1 == c2 is true.

people

See more on this question at Stackoverflow