Ссылка : переменная, которая указывает на некоторый объект в памяти.
Хранится в стеке, они могут содержаться в других объектах (тогда они на самом деле не переменные, а поля), что также помещает их в кучу.
Объект : Экземпляр класса, который создается динамически.
Хранится в куче
Пример:
MyClassI aObj,aObj1;
aObj=new MyClass2();
В первой строке aObj и aObj1 являются ссылками
Во второй строке aObj ссылается на объект MyClass2 (оператор New создает объект Myclass2, а его адрес назначается aObj).
Чтобы понять еще лучше, рассмотрим класс Car, в котором в качестве члена стоит driverName.
Car c1,c2;
c1.driverName="Andrew"
c2.driverName="Gabriel"
System.out.println(c1.driverName);//gives Andrew
System.out.println(c2.driverName);//gives Gabriel
c1=c2;
c2=null;
// gives gabriel because the address of c2 is copied to reference c1.
// the object is not nullified because c2 is just a reference when
// assigning null the address that is stored on c2 in nullified not
// the object it points..
system.out.println(c1.driverName);