• jvm相关知识点


    1.hotspot虚拟机结构:类加载器、堆、栈、方法区、垃圾回收系统、执行引擎、本地方法栈、pc寄存器。

    类加载器:负责将class文件从文件系统加载到方法区。

    堆:存放对象的一块区域,所有线程共用。

    栈:每个线程都有自己的一块栈空间,主要用于局部变量、方法参数保存。

    垃圾回收系统:用于垃圾回收。

    执行引擎:讲将class字节码翻译成机器能执行的机器码。

    本地方法栈:跟Java栈类似,本地方法使用。

    pc寄存器:存放机器下一步要执行的地址指针。

    2.堆主要分为新生代和老年代,新生代又分为eden、s0、s1,新实例化对象都是放在eden区,回收存活后往s0、s1移动。

    相关配置参数:

    最小堆:Xms,

    最大堆:Xmx,

    新生代堆大小:Xmn,

    栈大小:Xss

    eden/s0 = eden/s1  = -XX:NewRatio,

    老年代/新生代 = -XX:SurViVorRatio,

    方法区大小:-XX:PermSize=64M

    最大方法区大小:-XX:MaxPerSize=64M

    3.垃圾回收算法:

    标记计数法,

    标记压缩法:把存活的对象压缩到内存一边。

    复制算法:把一块内存分成两块,一块用于垃圾回收,回收完将存活的对象复制到另一块区域,然后清除以前区域的所有对象,这样反复使用。

    分区算法:将一块区域分成多块区域。

    分代算法:新生代和老年代使用不同的回收算法。

    4.垃圾回收器

    串行回收器:-XX:+UseSerialGC

    并行回收器:两个新生代并行回收器,分别是UseParNewGC和UseParallelGC,一个老年代垃圾回收器是UseParallelOldGC

    CMS回收器:

    G1回收器:

  • 相关阅读:
    SpringBoot 官方文档中文版
    SpringBoot 官方文档中文版
    SpringBoot 官方文档中文版
    RK 打包脚本 make_ext4fs system.img
    Linux安装docker-compose
    Linux使用docker安装Jenkins 并进行jar包发布
    JAVA把InputStream 转 字节数组(byte[])
    SpringBoot简单整合分布式任务调度平台(XXL-JOB)
    SpringBoot项目bootstrap.yml配置文件不加载
    JAVA中Base64和byte数组(byte[]) 相互转换
  • 原文地址:https://www.cnblogs.com/3chi/p/7268399.html
Copyright © 2020-2023  润新知