• JVM内存模型、GC垃圾回收


    一、堆

    Java虚拟机管理的内存中最大的一块,目的是存放对象实例

    堆是垃圾收集器管理的主要区域,也被称为GC堆。Java垃圾回收机制:分代垃圾回收算法;因此Java堆还可以细分为新生代、老年代。

    二、方法区

    存储已被虚拟机加载的类信息、常量、静态变量等数据

    三、程序计数器

    代码编译后会生成一条条指令,程序计数器记录指令执行到哪一行了

    四、JVM栈

    生命周期与线程相同,用于存放局部变量等

    每个方法被执行的时候都会创建一个栈帧,每个方法执行过程中,就是栈帧进栈到出栈的过程

    五、本地方法栈

    为虚拟机用的Native方法服务

    垃圾回收

    一、如何判断垃圾

    1、引用计数算法

      在对象中添加一个引用计数器,计数为0时不再使用

    2、根搜索算法

      从GC Roots开始向下搜索,当一个对象到GC Roots没有任何引用链相连时,认为不可用

    二、垃圾回收机制

    1、标记清除算法

      标记所有需要被回收的对象,统一清除

    2、标记复制算法

      将留下的对象复制到另一块内存区域,统一清除原内存区域

    3、标记整理算法

      将保留的对象移动到内存的一侧,边界外的对象清除

    Java采用的来及回收机制:分代收集算法

      分为新生代和老年代,新生代采用标记复制算法,老年代采用标记整理算法

  • 相关阅读:
    大数据架构资料
    SQLServer 随机生成指定范围的日期
    源码解析Django CBV的本质
    源码剖析Django REST framework的认证方式及自定义认证
    Django----中间件详解
    权限管理系统
    Django---分页器、中间件
    linux每日命令(37):top命令
    linux每日命令(36):wc命令
    linux每日命令(35):grep命令
  • 原文地址:https://www.cnblogs.com/SSs1995/p/16002569.html
Copyright © 2020-2023  润新知