当new一个对象的时候,java在堆对对象分配内存,在栈中定义一个特殊的变量,这个变量的取值等于对象在堆内存中的首地址。因此,单对象入参的时候,d2也是在栈中定义一个保存内存首地址的变量而已,这个地址指向原先在堆中被分配的内存。因此,在方法中对对象的操作是直接操作原有的对象,而不会在堆中分配而外的内存。也就是d1和d2指向的是同一个内存地址