面试题:java GC是在什么时候,对什么东西,做了什么事情?
来源:互联网 发布:linux怎么看硬盘空间 编辑:程序博客网 时间:2024/04/30 01:23
一.回答:什么时候?
- 能说明minor gc/full gc的触发条件、OOM的触发条件,降低GC的调优的策略。 分析:列举一些我期望的回答:eden满了minor gc,升到老年代的对象大于老年代剩余空间full gc,或者小于时被HandlePromotionFailure参数强制full gc;gc与非gc时间耗时超过了GCTimeRatio的限制引发OOM,调优诸如通过NewRatio控制新生代老年代比例,通过 MaxTenuringThreshold控制进入老年前生存次数等……能回答道这个阶段就会给我带来比较高的期望了,当然面试的时候正常人都不会记得每个参数的拼写,我自己写这段话的时候也是翻过手册的。回答道这部分的小于2%。
总结:程序员不能具体控制时间,系统在不可预测的时间调用System.gc()函数的时候;当然可以通过调优,用NewRatio控制newObject和oldObject的比例,用MaxTenuringThreshold 控制进入oldObject的次数,使得oldObject 存储空间延迟达到full gc,从而使得计时器引发gc时间延迟OOM的时间延迟,以延长对象生存期。
二.回答:对什么东西?
- 超出了作用域或引用计数为空的对象;从gc root开始搜索找不到的对象,而且经过一次标记、清理,仍然没有复活的对象。
三.回答:做什么?
删除不使用的对象,回收内存空间;运行默认的finalize,当然程序员想立刻调用就用dipose调用以释放资源如文件句柄,JVM用from survivor、to survivor对它进行标记清理,对象序列化后也可以使它复活。
点击打开链接
0 0
- 面试题:java GC是在什么时候,对什么东西,做了什么事情?
- 转:面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- 面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- 面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- 面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- 面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- java GC是在什么时候,对什么东西,做了什么事情?”
- 你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- java GC是在什么时候,对什么东西,做了什么事情?
- java GC是在什么时候,对什么东西,做了什么事情
- 面试题:java GC发生在会么时候,对什么东西,做了什么事情
- Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
- Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
- Java JVM 8:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
- Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
- Java垃圾回收:GC在什么时候对什么做了什么
- Java垃圾回收:GC在什么时候对什么做了什么
- [转]Java垃圾回收:GC在什么时候对什么做了什么
- iOS删除本地文件
- Android NDK编程浅入深出之--Android.mk(2)
- MySQL免安装版的配置
- jQuery源码分析之appendTo,prependTo,insertBefore,insertAfter,replaceWith函数
- 线性表的链式存储结构
- 面试题:java GC是在什么时候,对什么东西,做了什么事情?
- Struts的标签库
- UIButton 按键
- 很用的JAVA工具类
- android应用打包成为安装包(常会出现的问题)
- ios获取系统时间
- operator运算符重载
- Python开发环境配置(Windows)
- java.sql.date与java.util.date,认识java.sql包(2015年10月9日)