这和java底层内存申请有关,每个new 创建的对象都是独立个体,单独申请内存,所以d1和d2不会是一个地址。如果是一个地址,修改d1后,d2是不是会同步修改,多线程条件下,如何保证每个线程的数据唯一。如果必须制定同一个地址,可通过直等赋值实现:dog d2=d1;