Reference datatypes in java are those which contains reference/address of dynamically created objects. These are not predefined like primitive data types.
Following are the reference types in Java.
class types − This reference type points to an object of a class.
array types − This reference type points to an array.
interface types − This reference type points to an object of a class which implements an interface.
Once we create a variable of these types (i.e. when we create an array or object, class or interface).
These variables only store the address of these values.
Default value of any reference variable is null.
A reference variable can be used to refer any object of the declared type or any compatible type.
Animal animal = new Animal("giraffe");
A pointer is a variable whose value is the address of another variable, i.e., direct address of the memory location. Like any variable or constant, you must declare a pointer before using it to store any variable address. The general form of a pointer variable declaration is −
int *ip; /* pointer to an integer */ double *dp; /* pointer to a double */ float *fp; /* pointer to a float */ char *ch /* pointer to a character */