On the lower level of Java, a "reference" can be thought of like a pointer in C. It is essentially an integer which refers to (points to) a location in memory where the object data exists.
// "button" is a reference to a JButton with a "1" on it (the object). JButton button = new JButton("1");
Source: http://wiki.answers.com/Q/Difference_between_reference_and_object_in_java
Object occupies some memory to store all its members details . reference is like a variable having capability to store the bits which gives us a way to access to stored object members.