栈是为了存放引用变量名
堆是为了存放具体引用的值,也就是对象
当程序运行时,首先会加载这些类和方法
当下面两行代码运行时
Pet dog = new Pet(); Pet cat= new Pet();
堆中会创建一块内存地址,按照Pet类创建一个一模一样的对象,并分配一块内存地址
栈中就会创建一个变量名 :dog 指向这块内存地址
然后,开始继续往下走,进行赋值操作
后面的就不说了
===================================END===================================