What is "reference"

In some programming languages, the copy of a variable can be implemented either as a copy per value or as a copy per reference. When it is copied by reference, a reference will be assigned to the data, and the underlying data is not copied. Often object data types will be copied by reference by default (for example, in Java), while primitives will be copied by value.