zoukankan      html  css  js  c++  java
  • jvm与GC

    https://juejin.im/post/5a15be736fb9a044fc4464d6

    jvm

    jvm把内存分为
    1.方法区(Method Area)
    2.堆区(Heap)
    3.虚拟机栈(VM Stack)
    4.本地方法栈(Native Method Stack)
    5.程序计数器(Program Counter Register)
    ?6.常量池区
    为什么新生代要有2个Survivorhttps://blog.csdn.net/antony9118/article/details/51425581

    gc

    引用计数算法

    经典的引用计数算法,每个对象添加到引用计数器,每被引用一次,计数器+1,失去引用,计数器-1,当计数器在一段时间内为0时,即认为该对象可以被回收了。但是这个算法有个明显的缺陷:当两个对象相互引用,但是二者都已经没有作用时,理应把它们都回收,但是由于它们相互引用,不符合垃圾回收的条件,所以就导致无法处理掉这一块内存区域。

    根搜索算法

    Sun的JVM并没有采用这种算法,而是采用一个叫——根搜索算法,基本思想是:从一个叫GC Roots的根节点出发,向下搜索,如果一个对象不能达到GC Roots的时候,说明该对象不再被引用,可以被回收。如上图中的Object5、Object6、Object7,虽然它们三个依然相互引用,但是它们其实已经没有作用了,这样就解决了引用计数算法的缺陷。

    四个应用状态

    个人小站:http://jun10ng.work/ 拥抱变化,时刻斗争,走出舒适圈。
  • 相关阅读:
    学习前先认识一下MVC
    关于C#问号(?)的三个用处
    MVC上传图片示例
    在html中控制自动换行
    mvc中viewdata 和viewbag的区别
    eclipse 下找不到或无法加载主类的解决办法
    js实现checkbox全选与反选
    web组件新学--layer
    获取注册表最高权限
    pstools使用教程
  • 原文地址:https://www.cnblogs.com/Jun10ng/p/12348292.html
Copyright © 2011-2022 走看看