美文网首页
JVM 部分知识点

JVM 部分知识点

作者: 呼语 | 来源:发表于2020-06-14 13:49 被阅读0次

    1. JVM 分区

    方法区 堆
    方法栈 本地方法栈 程序计数器
    直接内存
    类加载子系统 执行引擎

    2. java 程序执行过程

    源文件 编译器 字节码 JVM解释器 机器码

    3. JVM的线程

    一个程序对应一个虚拟机
    一个jva线程 对应一个操作系统原生线程

    4. 内存区域

    程序计数器: 指示当前执行的字节码行号 。native方法则为空。
    方法栈 :描述java方法执行的内存模型。每个方法执行都有一个栈帧。栈帧:局部变量表、操作栈、动态链接、放回地址。
    本地方法栈
    为native原生方法作支撑。

    对象和数组存储的地方。GC主要的工作对象。

    堆的图示
    • eden区 对象创建区域
    • from区 上一次GC的幸存者。
    • to区 与分区GC作配合。保留minorGC过程的幸存者。
    • minorGC过程
      复制 、edge+1 、清空 、 调换 。
      当edge == 15 时 ,转老年代。(较大对象直接转老年代)
    • 老年代
      MajorGC 标记清除算法。不会频繁执行。

    方法区
    java 7 永久代: 用于存储被 JVM 加载的类信息、常量、静 态变量、即时编译器编译后的代码等数据.
    java 8 元空间: 不在虚拟机中,使用本地内存。常量池和类的静态变量放入java堆。
    GC主要作类型卸载。

    5. JVM GC算法

    • 确定可回收算法
      • 引用计数法 :存在循环引用的问题。
      • 可达性分析 : DFS GC root
        两次不可达变成可回收
    • 清除算法
      • 标记清除算法 : 内存碎片
      • 复制算法 : 使用内存压缩一半;存活对象多可能降低效率。
      • 标记整理算法:将存货对象移到另一端,覆盖回收对象。并清除边界外对象
    • 分代收集算法

    6. java中的四种引用类型

    • 强引用 GC不回收
    • 弱引用 GC在内存不足时回收
    • 软引用 GC不管其内存是否足。都回收。
    • 虚引用。主要跟踪对象被垃圾回收的状态。

    7. 几种 GC 回收器

    相关文章

      网友评论

          本文标题:JVM 部分知识点

          本文链接:https://www.haomeiwen.com/subject/qsxxxktx.html