具体传递过程
执行过程:
1.在方法区存储代码片段
2.在堆区开辟对象空间(new User(20))
3.main函数创建局部变量User u;并分配一个地址指向2所开辟的空间
4.将add(u)压栈,并创建一个局部变量,这个局部变量地址与3地址相同,指向2所开辟空间
参数传递
int i = 10;
int j = i; //i传递给j,实际上是i的值传递给j,i和j都是一个全新的内存空间
User u1 = 0x1234;
User u2 = u1; //u传递给u2,实际上是将u1的值,也就是0x1234赋值给u2,u1和u2是两个不同的局部变量。但是u1和u2指向堆内存中同一个java对象。