One difference I know is
One is alias. i.e. you have 2 things exactly alike and the other is a pointer to the first object. Analogy can be
x and y hold the same data.
x holds the data and y knows its address where the data of x is