Why a1==a2
is true after assignment a1=a2
in the main method, but a1==a2
returns false
if we do the same in another static method m
?
class A {};
public class Program
{
static void m(A a1, A a2){
a1=a2;
}
public static void main(String[] args) {
A a1=new A();
A a2=new A();
a1=a2;
System.out.println(a1==a2);
}
}
Output: true
class A {};
public class Program
{
static void m(A a1, A a2){
a1=a2;
}
public static void main(String[] args) {
A a1=new A();
A a2=new A();
m(a1,a2);
System.out.println(a1==a2);
}
}
Output: false