栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JVM简要梳理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JVM简要梳理

整体流程

class生命周期


装载:

全盘负责:当前类及其所依赖、引用的类一并加载父类委托:双亲委派。loadClass()–findClass()–loadClassData()–defineClass(),自定义的话就复写findClass()缓存机制:优先从缓存取,缓存没有再加载解析

验证:
文件格式验证
语法验证

准备:
静态变量初始化零值
常量初始化赋值

解析:
符号引用转换为直接引用
初始化:

时机
主动按需加载顺序
先父类后子类,先静态后实例

对象内存结构:

对象头
mark world:哈希码、分代年龄、锁状态标记
class pointer:class指针
length:数组长度实例数据:不同数据类型长度不同对齐填充:保证为8字节整数倍

垃圾回收:

引用计数
循环引用问题可达性分析
GC ROOT:栈帧中局部变量表、方法区中静态变量及常量、本地方法栈中JNI元素finalize()
只执行一次,如果执行过程中对象再次被强引用,则该对象不会被回收标记清除
效率低,空间碎片标记整理
效率低,没有碎片
整理顺序:任意顺序(双指针)、线性顺序、滑动顺序(lisp、lisp2)标记复制
效率高,没有碎片,浪费一半空间

引用类型:

强引用
不回收软引用
内存不足、超时回收弱引用
直接回收虚引用 JVM参数


线程内存与主存同步数据:
read—load—use—assign—lock—store—write—unlock

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/722065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号