Trusted answers to developer questions

How to pass by reference in Java

Educative Answers Team

Grokking the Behavioral Interview

Many candidates are rejected or down-leveled in technical interviews due to poor performance in behavioral or cultural fit interviews. Ace your interviews with this free course, where you will practice confidently tackling behavioral interview questions.

One of the biggest confusions in Java is whether it is pass by value or pass by reference.

Java is always a pass by value; but, there are a few ways to achieve pass by reference:

  1. Making a public member variable in a class
  2. Return a value and update it
  3. Create a single element array
svg viewer

Ways to create a pass by reference


1. Making a public member variable in a class:

In this method, an object of a class passes in the function and updates the public member variable of that object; ​changes are visible in the original memory address.

// my class
class my_number {
// public member variable
public int number;
// default constructor
public my_number()
{
number = 1;
}
}
// driver function
class Main{
public static void main (String [] arguments)
{
// creating object
my_number object = new my_number();
// printing before update
System.out.println("number = " + object.number);
// update function called.
update(object);
//printing after update.
System.out.println("number = " + object.number);
}
// update function.
public static void update( my_number obj ){
// increments number variable.
obj.number++;
}
}

2. Return a value and update it:

This is a simple method in which changes are returned by the function to​ update the original memory address.

// driver function
class Main{
public static void main (String [] arguments)
{
int number = 1;
// printing before update.
System.out.println("number = " + number);
// update function returns a value.
number = update(number);
// printing after update.
System.out.println("number = " + number);
}
// update function
public static int update( int number ){
// increments number.
number++;
return number;
}
}

3. Create a single element array:

In this, a single element array is created and passed as a parameter to the function; the effect is visible in the original memory address.

// driver function.
class Main{
public static void main (String [] arguments)
{
// single element array.
int number[] = { 1 };
// printing before update.
System.out.println("number = " + number[0]);
//update function.
update(number);
// printing after update.
System.out.println("number = " + number[0]);
}
// update function.
public static void update( int number[] ){
// increments the number
number[0]++;
}
}

RELATED TAGS

pass by reference
java
Copyright ©2023 Educative, Inc. All rights reserved
Trusted Answers to Developer Questions

Related Tags

pass by reference
java
Did you find this helpful?