对象与内存
对象视为引用类型,与数据类型不同的是需要new开辟内存空间,(实例化有内存空间后才能操作方法)。
引用传递的实质是不同的栈空间指向同一堆空间。
栈内存:保存一块堆内存的地址,简单理解为保存了对象的名字,一个栈内存只能保持一个堆内存的地址。
堆内存:保存每个对象的属性,需要关键字new开辟,开辟后堆内存中会有类的各种属性,若分别new了2个对象,那么各自占有堆空间且不会相互影响;一个堆内存可以被多个栈内存所指向;
垃圾空间的产生
举一个例子:同一类存在2个对象,A进行了初始化,B未初始化,B=A即把A的堆空间地址给B,AB指向同一堆空间;A,B都进行了初始化,执行B=A后B的原有堆空间没有对象指向,成为了垃圾空间(没有栈空间指向的堆空间,会不定期自动被GC回收)。
在开发中应避免垃圾空间的产生。