System.out.println("te == abc------->"+(te == abc));
In above case:
Both te and abc are same type so you will not get any comipile time error.
and both are points 2 different location so it will return false.
System.out.println("i == j------->"+(i == j));
In case of numeric comarision don't think as a address comparision.just it will compare there values whether same or not. if it is same return true otherwise false.In this case if you compare int and double value , then int is automatically promoted to double perform comparision. It means automatic type conversion is possible.
== means comparision. For normal variables or constants we can compare directly , but where as objects we can not. so in case of objects we will say == as a address comparision operator.