zoukankan      html  css  js  c++  java
  • JVM总结

    一:JVM运行时数据区:程序计数器、虚拟机栈、本地方法栈、堆、方法区(元空间)

    1:虚拟机栈:存储当前线程运行方法所需的数据、指令、返回地址。

    栈帧(用来执行方法):每个方法在执行的同时都会创建一个栈帧,栈帧划分为:局部变量表(八大基本数据类型、对象引用reference)、操作数栈、动态链接、返回地址。

    2:本地方法栈:本地方法栈保存的是native方法的信息,当一个JVM创建的线程调用native方法后,JVM不在为其在虚拟机栈中创建栈帧,JVM只是简单地动态链接并直接调用native方法。但是Hotspot虚拟机把虚拟机栈和本地方法栈合二为一。

    二:堆内存分为新生代和老年代,新生代分为:Eden区域、survivor区域(from、to),也就是说新生代区域分为三部门,内存大小比例为8:1:1

    三:对象存放过程总结:

    ①:对象优先放在Eden区域

    ②:长期存活的对象放在老年代,age=15(发生一次gc,age加一),Eden->from/to->old

    ③:大对象直接进入老年代

    ④:动态年龄判断

    ⑤:空间分配担保,保守做法,对象要晋级老年代了,一般不发生老年代gc,但是如果放不下了,会发生gc

    四:JVM中的垃圾回收机制

    1:Minor GC: 

    回收区域:新生代

    回收算法:复制回收算法

    2:Full GC:

    回收区域:新生代、老年代、永久代(元空间)

    回收算法:标记清除、标记整理算法

    五:JVM中存在的引用类型

    1:强引用

    2:软引用

    3:弱引用

    4:虚引用

    郭慕荣博客园
  • 相关阅读:
    【面积并】 Atlantis
    【动态前k大 贪心】 Gone Fishing
    【复杂枚举】 library
    【双端队列bfs 网格图建图】拯救大兵瑞恩
    【奇偶传递关系 边带权】 奇偶游戏
    【权值并查集】 supermarket
    CF w4d3 A. Pythagorean Theorem II
    CF w4d2 C. Purification
    CF w4d2 B. Road Construction
    CF w4d2 A. Cakeminator
  • 原文地址:https://www.cnblogs.com/jelly12345/p/12026351.html
Copyright © 2011-2022 走看看