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:虚引用

    郭慕荣博客园
  • 相关阅读:
    模拟tap事件和longTap事件
    jquery工具方法总结
    outline:0与outline:none区别
    babel吐槽
    兼容ie8 rgba()写法
    git删除文件夹
    css简写总结
    回调函数实例—(二)
    回调函数的那些事儿(转载)
    回调函数好文章汇总
  • 原文地址:https://www.cnblogs.com/jelly12345/p/12026351.html
Copyright © 2011-2022 走看看