1. The equals method in Java compares object references using ==, while for String it compares character values using equals(). The getClass() and instanceof operators can be used to check the type of an object.
2. Polymorphism allows a parent class reference to refer to a child class object without knowing the exact type.
3. Java APIs like String, ArrayList, HashMap are commonly used generic collections that can store different object types.