This week's book giveaways are in the Refactoring and Agile forums. We're giving away four copies each of Re-engineering Legacy Software and Docker in Action and have the authors on-line! See this thread and this one for details.
When a class is instantiated and loaded it becomes an object.
When you have many objects of the same type they can be called as instances of that object. They need not have the same data in them.
A reference is used to point to an object. This reference may also point to null which means that it points to nothing. A reference is a way by which you can access the contents of that object. If you try to execute methods or access variables of a reference that points to null, you get a NullPointerException.