call by reference in java code example
Example 1: java method reference
Java provides a feature called method
reference in Java 8. Method reference
is used to refer method of functional interface.
It is compact and easy form
of lambda expression. Each time when
you are using lambda expression to just
referring a method, you can replace your
lambda expression with method reference.
Types of Method References:
- Reference to a static method. Syntax ==> ContainingClass::staticMethodName
- Reference to an instance method. Syntax ==> containingObject::instanceMethodName
- Reference to a constructor. Syntax ==> ClassName::new
Example 2: call by value and call y refrence in java
/*call by refrence doesnot change the value of parameters(a and b ) in
main function but where as passing the values by refrence changes the values
of and b in the main function
*/
//CALL BY REFERENCE
public class JavaTester {
public static void main(String[] args) {
IntWrapper a = new IntWrapper(30);
IntWrapper b = new IntWrapper(45);
System.out.println("Before swapping, a = " + a.a + " and b = " + b.a);
// Invoke the swap method
swapFunction(a, b);
System.out.println("\n**Now, Before and After swapping values will be different here**:");
System.out.println("After swapping, a = " + a.a + " and b is " + b.a);
}
public static void swapFunction(IntWrapper a, IntWrapper b) {
System.out.println("Before swapping(Inside), a = " + a.a + " b = " + b.a);
// Swap n1 with n2
IntWrapper c = new IntWrapper(a.a);
a.a = b.a;
b.a = c.a;
System.out.println("After swapping(Inside), a = " + a.a + " b = " + b.a);
}
}
class IntWrapper {
public int a;
public IntWrapper(int a){ this.a = a;}
}
/*
------------------------------------OUTPUT--------------------------------------
Before swapping, a = 30 and b = 45
Before swapping(Inside), a = 30 b = 45
After swapping(Inside), a = 45 b = 30
**Now, Before and After swapping values will be different here**:
After swapping, a = 45 and b is 30
--------------------------------------------------------------------------------
*/
//CALL BY VALUE
public class Tester{
public static void main(String[] args){
int a = 30;
int b = 45;
System.out.println("Before swapping, a = " + a + " and b = " + b);
// Invoke the swap method
swapFunction(a, b);
System.out.println("\n**Now, Before and After swapping values will be same here**:");
System.out.println("After swapping, a = " + a + " and b is " + b);
}
public static void swapFunction(int a, int b) {
System.out.println("Before swapping(Inside), a = " + a + " b = " + b);
// Swap n1 with n2
int c = a;
a = b;
b = c;
System.out.println("After swapping(Inside), a = " + a + " b = " + b);
}
}
/*
-----------------------------------OUTPUT---------------------------------------
Before swapping, a = 30 and b = 45
Before swapping(Inside), a = 30 b = 45
After swapping(Inside), a = 45 b = 30
**Now, Before and After swapping values will be same here**:
After swapping, a = 30 and b is 45
--------------------------------------------------------------------------------
*/