zoukankan      html  css  js  c++  java
  • GC的时机

    说到JVM,GC(垃圾回收)是非常重要的机制。

    那么首先的问题是:

    GC在什么时候会发生?

    GC的触发包括两种情况:1.程序调用System.gc()的时候。2.系统自身决定是否需要GC。

    系统进行GC的依据:1.eden区满会触发 Minor GC。

    2.FULL GC的触发条件:

    (1)调用System.gc时,系统建议执行Full GC,但是不必然执行。

    (2)老年代内存不足的时候。

    (3)方法区内存不足的时候。

    第二个问题:GC的对象是什么?

    如何判断一个对象会被GC,在JVM中采用的可达性算法。从GC ROOT 出发,如果该对象不可达。则会对该对象进行调用finalize()方法进行释放。

    对GC Root搜索不到的对象,可能并不会立即GC,至少需要对该对象进行两次标记。

    第三个问题:如何GC。GC的算法大致有四种:标记-清除、复制、标记-整理、分代。整体采用分代算法,

    对于新生代,采取的是复制算法。对于老年代采取标记-清除或者标记整理。

    疑问:如何优化?优化的方向有些?这些以后会逐渐补充。

  • 相关阅读:
    发送 GET 和 POST 请求
    日志记录帮助类
    常用正则表达式
    获取验证码
    C# 生成二维码
    android sql Cursor
    sql 语句操作
    android 界面悬浮框实现
    android activity四种启动模式
    andorid 自定义view属性declare-styleable
  • 原文地址:https://www.cnblogs.com/zhangjwcode/p/6880105.html
Copyright © 2011-2022 走看看