zoukankan      html  css  js  c++  java
  • 深入理解Java虚拟机(三)、垃圾收集算法

    1、第一门真正使用内存动态分配和垃圾收集技术的语言:Lisp

    2、程序计数器、虚拟机栈、本地方法栈这3个区域随线程而生灭,这几个区域的内存会随着方法结束或线程结束而回收,GC关注的是Java堆和方法区

    3、引用计数法很难解决对象之间相互循环引用的问题

    4、在主流商用程序语言的主流实现中,都是通过可达性分析而不是引用计数来判定对象是否存活的。

    可达性分析原理:通过一系列称为GC Roots的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,证明此对象是不可用的。

    可以作为GC Roots的对象包括以下几种:

    a、虚拟机栈(栈帧中的本地变量表)中引用的对象

    b、方法区中类静态属性引用的对象

    c、方法区中常亮引用的对象

    d、本地方法栈中JNI(即一般说的Native方法)引用的对象

    5、JDK1.2之后,将引用分为强引用、软引用、弱引用、虚引用4种

    详见这篇文章

    6、 

  • 相关阅读:
    oracle性能监控
    MySQL Explain详解
    oracle中merge into用法解析
    Mysql常见函数
    Quartz -第一篇-入门
    搭建zookeeper集群
    linux 安装mysql
    mysql无法远程访问
    ActiveMQ 持久化
    Nyoj 城市平乱(图论)
  • 原文地址:https://www.cnblogs.com/boucher/p/5971096.html
Copyright © 2011-2022 走看看