Java Interview Question

Use this advanced question and answer to prepare for your next Java interview.

Explain why Java is Pass-by-Value and not Pass-by-Reference. Give an example.

Pass-by-value is when the reference to an object is copied to a new variable.

Pass-by-reference is when a reference to an object is passed directly to the other method.

When a method is called in Java, new Stack space is allocated for the method and all variables in the arguments are copied to the new Stack block.


private void A() {
  Something s = new Something();

private void B(Something x) {
  x = new Something();

In the first print statement, S is printed. In the second print statement, X is printed. This is because the variable x is local to B and the variable s is local to A. Before x is initialized to a new object, both x and s are pointing to the same object on the Heap, but they are individual references. Changing the object to which x points will not change the object to which s points.

In a pass-by-reference language, the second print statement would print Y.

Looking for developers?