My questions are: 1, Why can I use equals() to compare Integer and Long? They are different classes. I know equals() can be used between same type of Objects. 2, Why it's false? If we are allowed to compare Integer with Long, the meaningful contents of i and j are 12. Why the return is false?