导图社区 JVM
这是一篇关于JVM的思维导图,JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
这是一篇关于Mybatis的思维导图,Java开发中常用SSM(Spring,SpringMVC,Mybatis)组合中的Mybatis框架的使用要点
这是一篇关于Mysql的思维导图,MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
社区模板帮助中心,点此进入>>
安全教育的重要性
个人日常活动安排思维导图
西游记主要人物性格分析
17种头脑风暴法
如何令自己更快乐
头脑风暴法四个原则
思维导图
第二职业规划书
记一篇有颜又有料的笔记-by babe
伯赞学习技巧
JVM
堆(heap)
新生代
eden
分配对象内存(有年龄)
创建对象
1.类加载检查
2.分配内存
3.初始化零值
4.设置对象头
对象哈希码
GC分代年龄
锁
类型指针
。。。
5.执行init方法
到这里虚拟机对象已经产生,开始java对象的初始化
from
to
Minor GC
过程
eden->from<->to->老年代
分配担保机制
from,to不够,担保存入老年代
哪些对象被回收
引用记数法
对象被引用和不被引用做标记
可达分析法
对象到GCRoot没有完整的引用链
第一次标记缓刑
第二次标记死刑
老年代
永久代(元空间)
堆内存分配策略
优先
大对象
长期存活对象
DirectByteBuffer对象
方法区
类信息
运行时常量池
静态变量
即时编译器编译后的代码
直接内存
Native 函数库直接分配堆外内存
NIO
线程共享
线程
程序计数器
实现指令流程控制
记录指令执行位置,方便线程中断后继续执行
虚拟机栈
栈帧
局部变量表
数据类型
boolean、byte、char、short、int、float、long、double
对象引用
操作数栈
动态链接
方法出口
可能的异常
OutOfMemoryError
StackOverFlowError
本地方法栈
线程私有
监控
JDK命令行工具
jps
jstat
jinfo
jmap
jhat
jstack
JDK可视化分析工具
JConsole
Visual VM