广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 计算机教程 > 正文

JAVA面试之java GC_惠州JAVA培训

作者:黄君发布时间:2020-11-30分类:计算机教程浏览:1024


导读:一些大企业会问到:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”该怎么回答呢?

“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”

在什么时候:

1.新生代有一个Eden区和两个survivor区,首先将对象放入Eden区,如果空间不足就向其中的一个survivor区上放,如果仍然放不下就会引发一次发生在新生代的minor GC,将存活的对象放入另一个survivor区中,然后清空Eden和之前的那个survivor区的内存。在某次GC过程中,如果发现仍然又放不下的对象,就将这些对象放入老年代内存里去。

2.大对象以及长期存活的对象直接进入老年区。

3.当每次执行minor GC的时候应该对要晋升到老年代的对象进行分析,如果这些马上要到老年区的老年对象的大小超过了老年区的剩余大小,那么执行一次Full GC以尽可能地获得老年区的空间。

对什么东西:从GC Roots搜索不到,而且经过一次标记清理之后仍没有复活的对象。

做什么:
新生代:复制清理;
老年代:标记-清除和标记-压缩算法;
永久代:存放Java中的类和加载类的类加载器本身。

GC Roots都有哪些:
1. 虚拟机栈中的引用的对象
2. 方法区中静态属性引用的对象,常量引用的对象
3. 本地方法栈中JNI(即一般说的Native方法)引用的对象。


标签:惠州北大青鸟惠州JAVA培训惠州IT培训惠州软件培训惠州软件开发


计算机教程排行
标签列表
网站分类
文章归档
最近发表