java回收机制是在对象没有被引用的时候就回收,而且回收不是即时发生的。是每隔一段时间java自动扫描后回收的。所以如果你一直创建对象,而不close的话,内存肯定会上升,close()方法你可以理解为销毁对象,但不是真正的销毁,只是做到让java回收机制可以回收这个对象而已。
但是如果你创建之后放到list中,然后close(),虽然你close()了,但是很明显你的对象被引用了,所以java回收机制不会回收你的对象。
你创建对象之后,然后使用close()。理论上来说这个对象会被销毁,所以不具备内存地址,但是之前说过java回收机制不是即时的,所以你在close()之后打印肯定是有地址的以上只是个人观点,不代表正确答案,谢谢!