java对象的建立和放置都是在内存堆栈上面进行的。程序或者其他的对象可以锁定一块堆栈地址来进行其他对象的引用。当一个对象没有任何引用的时候,Java的自动垃圾回收机制就发挥作用,自动删除这个对象所占用的空间,释放内存以避免内存泄漏。但是内存泄漏并不是就此而完全避免了,当程序员疏忽大意地忘记解除一个对象不应该有的引用的时候,内存泄漏仍然不可避免.不过发生的几率很小。
一般出现能大量出现垃圾的是创建匿名对象时,匿名对象用完以后即成垃圾。- 例:
- {
- new Person(); //因为是匿名对象,没有引用句柄指向它,即为垃圾
- new Person().print();
- //当运行完匿名对象的print()方法,这个对象也变成了垃圾
- ……
- }
复制代码 因此,在程序中应尽量少用匿名对象。
|