What is the difference between Java references and pointers in other languages?

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 −

type *var-name;


int *ip; /* pointer to an integer */
double *dp; /* pointer to a double */
float *fp; /* pointer to a float */
char *ch /* pointer to a character */