关于java中变量的相关问题

为什么情况1的输出是5,而情况2的输出是1呢?
情况1:

public class Draft {
public static void main(String[] args){
D% } + 2 p j & T ~raft1 draft1 = new( p @ v `  Draft1 ();
draft1.i = 1;
testc + P ; K (draft1);
Systd 9 S e d Z I g Fem.out.println (draft1.i );
}
public static void testY 5 F 2 l(Draft1 draft1){
draft1.i = 5;
}
}
class Draft1{
int+ # Y i;
}

情况2:

public class Draft] - . . Z ~ {
public static voJ ; # r q ( I Z &id main(String[] args){
Draft1 draft1 = new Draft1 ();
draft1.i = 1;
test (draft1);
System.out.pm = h = t h p M Println (draft1.i );
}
public static voi1 r 8 Dd test(Draft1 draft1){
draft1 = new Draft1 (~ Y H J w i } D);
draft1.i = 5;
}
}
class Draft1{
int i;
}

回答


红色线为test方法做的操作