zoukankan      html  css  js  c++  java
  • java 垃圾回收机制

    参考:

    http://www.cnblogs.com/laoyangHJ/articles/java_gc.html

    http://blog.csdn.net/mahongming/article/details/5992083

    java垃圾啊回收机制

    回收方法:

    1.引用计数收集器 有引用,标志加1,垃圾回收标志是0的

    2.跟踪收集器 从基础对象开始递归确定对象是否可达

    3.object--finalize() 在垃圾回收时执行

    4.程序员可以通过调研System.gc方法来建议执行垃圾收集

    jvm内存分配:

    1.堆:所有通过new创建的对象的内存都在堆中分配。

      1.新生代(Eden,FromSpace,ToSpace)

      2.旧生代

    2.方法区:存放了要加载的类信息、静态变量、final类型的常量、属性和方法信息

    3.本地方法栈:用于支持native方法的执行

    4.栈:每个线程执行每个方法的时候都会在栈中申请一个栈帧,每个栈帧包括局部变量区和操作数栈,用于存放此次方法调用过程中的临时变量、参数和中间结果

    gc原理:

    1.gc只进行堆中的回收

    2.对新生区的回收用 Copying算法  频率高

    新生代采用空闲指针的方式来控制GC触发,指针保持最后一个分配的对象在新生代区间的位置,当有新的对象要分配内存时,用于检查空间是否足够,不够就触发GC。扫描出存活的对象,并复制到一块新的完全未使用的空间中,对应于新生代,就是在Eden和FromSpace或ToSpace之间copy。

    3.对旧生区的回收 标记(Mark)算法来进行回收 频率低 

    所谓标记就是扫描出存活的对象,然后再进行回收未被标记的对象,回收后对用空出的空间要么进行合并,要么标记出来便于下次进行分配,总之就是要减少内存碎片带来的效率损耗

  • 相关阅读:
    iphone中button按钮显示为圆形解决
    获得URL含有中文出现乱码解决
    shell脚本检测监控mysql的CPU占用率
    centos6.x硬件信息统计脚本
    Linux下模拟多线程的并发并发shell脚本
    CentOS目录结构超详细版
    Centos 下搭建FTP上传下载服务器
    CentOS下输入输出重定向
    Centos时间查看修改命令date详解
    Shell脚本之awk详解
  • 原文地址:https://www.cnblogs.com/wjw334/p/3634231.html
Copyright © 2011-2022 走看看