A a = new A(); 在堆开辟空间,并把值存在堆,这时候栈也开辟一个空间,存得时对象的物理地址
A a =null; 在栈中开辟空间,存个地址,因为它没值,所以堆中无需开辟
超过作用域 马上会被回收,堆和栈 都是内存,栈的大小必须是确定的,堆的大小可以是不确定的,所以 基本数据类型都是放在栈里,对象就得放在堆里