黑马程序员技术交流社区

标题: java 基础面试题之垃圾回收器 [打印本页]

作者: 小鱼儿211    时间: 2015-10-22 13:16
标题: java 基础面试题之垃圾回收器
1.垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。
2.GC是什么? 为什么要有GC?
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。


作者: wome789    时间: 2015-10-22 14:25
赞一个,学习了,个人认为垃圾回收器应该是不定时自动执行的吧。
作者: 耀阳圣尊    时间: 2015-10-22 14:36
但是有的垃圾GC还是回收不了,这个时候你就要手动的把对象置为null
作者: 小鱼儿211    时间: 2015-10-22 17:49
耀阳圣尊 发表于 2015-10-22 14:36
但是有的垃圾GC还是回收不了,这个时候你就要手动的把对象置为null

是啊!
作者: 小鱼儿211    时间: 2015-10-22 17:58
wome789 发表于 2015-10-22 14:25
赞一个,学习了,个人认为垃圾回收器应该是不定时自动执行的吧。

Java中是,c语言不是自动清理
作者: dai2686779    时间: 2015-10-22 18:17
66666666666666666
作者: wome789    时间: 2015-10-23 10:52
小鱼儿211 发表于 2015-10-22 17:58
Java中是,c语言不是自动清理

恩,是的,说的就是java
作者: liuqianfly    时间: 2015-10-23 12:48
学习啦!
作者: chenguoyu520    时间: 2015-10-23 13:06
学习了,收藏一下,肯定会有用的。
作者: 达达达    时间: 2015-10-23 23:46
你说的GC在创建对象时监控着,那我是应该认为GC是系统一开始就开着的吗?我们调用System.gc()是不是只是开关一样?




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