I know that JAVA is passing arguments by value (copy). Why does this code returns John ?
public class User {
String name;
public static void main(String[] args) {
User u = new User();
u.name = "Sebastian";
System.out.println(u.name);
initialize(u);
System.out.println(u.name);
}
public static void initialize(User u){
u.name = "John";
System.out.println(u.name);
User u2 = new User();
u2.name="dsafsa";
u = u2;
System.out.println(u.name);
u.name = "Lilly";
System.out.println(u.name);
}
}