java中有自动回收机制,为什么有时候还写程序回收?
2017-09-18 20:16
190 查看
因为java的垃圾回收,用户是没有办法控制的,它会在不确定的时候触发,而且java不保证在整个程序运行期一定会触发垃圾回收,所以对于流、阿socket等之类的资源用完之后一定要关闭。
而且垃圾回收机制对于socket、thread之类的对象即使引用计数为0了,只要还是在活动的情况下,也不会被回收。
正因为这种情况,所以有时候写程序直接 new Thread().start(); 这样写,这个线程同样会执行到结束,否则这个线程对象根本没有引用指向它,立马就会被回收掉了。
而且垃圾回收机制对于socket、thread之类的对象即使引用计数为0了,只要还是在活动的情况下,也不会被回收。
正因为这种情况,所以有时候写程序直接 new Thread().start(); 这样写,这个线程同样会执行到结束,否则这个线程对象根本没有引用指向它,立马就会被回收掉了。
相关文章推荐
- java 数据库连接的自动回收机制 removeAbandoned
- JAVA的内存分配策略和自动垃圾回收机制
- Notes: Garbage Collection in Java(Java的自动垃圾回收机制)
- Notes: Garbage Collection in Java(Java的自动垃圾回收机制)
- java对于垃圾回收机制[GC垃圾回收机制] 为什么有GC还会有内存溢出呢?
- java程序为什么无须delete语句进行内存回收
- Java程序的垃圾回收机制
- Java有自己的内存回收机制,但为什么还存在内存泄露的问题呢?
- Notes: Garbage Collection in Java(Java的自动垃圾回收机制)
- Java -- 深入浅出GC自动回收机制
- Java无用内存自动回收机制
- Java程序工作原理及Java的垃圾回收机制
- java有自动垃圾回收机制
- Notes: Garbage Collection in Java(Java的自动垃圾回收机制)
- 关于java的自动回收机制
- Notes: Garbage Collection in Java(Java的自动垃圾回收机制)
- 为什么JAVA的垃圾回收机制无法避免内存泄漏
- 深入理解java虚拟机阅读笔记二:java自动内存管理机制以及垃圾回收机制
- Notes: Garbage Collection in Java(Java的自动垃圾回收机制)
- 为什么用内部类,java的垃圾回收机制