zoukankan      html  css  js  c++  java
  • Java底层

    垃圾回收(GC):是JVM中创建对象的内存分配以及销毁对象的内存回收的机制。

    对象是否可回收:

    1、对象引用计数法:根据对象的引用数量判断对象是否可回收

    2、对象不可达分析法:根据对象是否可达判断对象是否可回收;

    垃圾收集机制:

    1、标记 - 清除:

    根据对象是否可达判断对象是否可回收;然后进行标记,最后再进行清除;

    缺点:可能产生不连续的可用内存块儿,对于大对象的创建不友好。

    改进版:标记 - 整理;(标记 - 压缩 - 清除)

    3、复制:

    每次只用一半的内存,当一次垃圾回收结束后,则将仍然存活的对象整体复制到另一半没有使用的内存区域;

    优点:避免内存碎片问题;

    缺点:浪费空间,代价昂贵;

    改进版:根据经验,将初生代内存分为 一个 edon 区,两个 survivor 区,edon 区 与 survivor区 大小比 8:1。这样整体就只有10% 的闲置空间。

    辅助策略:老年代担保机制。

    .

    商用JVM通用的垃圾回收机制:

    分代收集

    初生代:使用改进版【复制】算法

    老年代:使用【标记 - 清除】算法

    GC类型:

    Minor GC:初生代回收;

    Full GC:初生代,老年代都回收。

    对象何时进入老年代:

    1、大对象直接进入老年代;

    2、survivor区存在 同龄对象的大小超过survivor一半的时候,则这些同龄对象进入老年代;

  • 相关阅读:
    IOS Block-Block块的使用与理解
    IOS 多线程03-GCD
    IOS 多线程01-线程基础知识
    JavaScript高级-定义函数(类)方法
    互联网技术笔试总通不过?leetcode刷对了么
    Redis 内存满了怎么办? Redis的内存淘汰策略
    SpringBoot项目优化和Jvm调优
    中台的末路
    Java 应用中的日志
    Spring Boot 支持https
  • 原文地址:https://www.cnblogs.com/wangwangfei/p/13206049.html
Copyright © 2011-2022 走看看