黑马程序员技术交流社区

标题: 关于对象的问题 [打印本页]

作者: 王红潮    时间: 2012-8-4 19:58
标题: 关于对象的问题
对象用完后,需要手动释放吗?

作者: 官文昌    时间: 2012-8-4 20:08
不需要,java有个很好的地方就是垃圾回收机制,java虚拟机会不定时处理不要的数据的。
java垃圾回收------------------------------------------------------------在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾收集意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放没用的对象,垃圾收集也可以清除内存记录碎片。由于创建对象和垃圾收集器释放丢弃对象所占的内存空间,内存会出现碎片。碎片是分配给对象的内存块之间的空闲内存洞。碎片整理将所占用的堆内存移到堆的一端,JVM将整理出的内存分配给新的对象。
作者: 官文昌    时间: 2012-8-4 20:08
不需要,java有个很好的地方就是垃圾回收机制,java虚拟机会不定时处理不要的数据的。
java垃圾回收------------------------------------------------------------在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾收集意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放没用的对象,垃圾收集也可以清除内存记录碎片。由于创建对象和垃圾收集器释放丢弃对象所占的内存空间,内存会出现碎片。碎片是分配给对象的内存块之间的空闲内存洞。碎片整理将所占用的堆内存移到堆的一端,JVM将整理出的内存分配给新的对象。
作者: 黑马-张化    时间: 2012-8-4 20:12
不需要 :
Java有自行一套的 垃圾回收 机制
当不够内存的时候 或者 适当的 时候将会自动回收垃圾
这些有java内核自动运行的、我们程序员不需要管他、
不像C++、还要自己动手回收垃圾、这点Java确实很不错、
作者: 徐小骥    时间: 2012-8-4 20:35
不需要,Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,很多人来我公司面试时,我都会问这个问题的,70%以上的人回答的含义是回收对象,实际上这是不正确的。
System.gc()
Runtime.getRuntime().gc()  
上面的方法调用时用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作这同样是不可预料的,这和抢占式的线程在发生作用时的原理一样。
作者: 史龙贤    时间: 2012-9-7 08:37
java中有垃圾回收机制,它会自动处理的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2