JVM 深入理解java虚拟机
2021-04-13 11:06:05 87 举报
AI智能生成
登录查看完整内容
JVM 深度学习解析 目前只更新到初篇和中篇,下篇会陆续更新,目前主更新Spring源码解析和企业级应用案例,如果感兴趣的小伙伴加q咨询812234271@qq.com
作者其他创作
大纲/内容
深入了解JVM虚拟机2020.5.21 Aic___
JVM内存模型
图解
1.类的加载子系统
详细图解
类的加载子系统
类加载子系统的作用
类的加载
链接
验证
准备
解析
初始化
2.运行时的数据区
看图了解数据区内部结构
程序计数器(PC寄存器)
问题:为什么使用pc寄存器记录当前线程执行的地址呢
虚拟机栈
问题:栈中可能存在的异常
说说你的解决方案
栈运行的原理
看图比比叨
栈的存储单位(栈帧)
局部变量表
操作数栈
动态链接
方法的返回地址
一些其他的赋值
问题:常量池的作用
问题:什么是栈顶缓存技术
方法的调用
虚方法和非虚方法
方法重写的本质
本地方法栈
Heap(堆区)
新生代和老年代
新生代和老年代占比参数如何设置
如何查看新生代和老年代占比
新生代
对象创建的概述
堆空间
如何设置堆空间的大小
内存分配策略是什么样的
堆空间都是线程共享的么?JVM首选的策略
堆空间参数设置小结
问题:新生代分配占比是不是越高越好
问题:没MinorGc之前的检查机制是怎样的(空间分配担保)
垃圾回收
什么时候进行垃圾回收
为什么频繁的GC会影响性能
方法区
类型信息
域信息
方法信息
3.执行引擎
4.对象创建6大步骤有哪些
5.对象的内存布局(对象头都有哪些结构?)
6.JVM如何通过栈帧上的对象引用访问到其内部的对象实例呢?
什么是句柄指针
图示
什么是直接指针
句柄访问和直接指针的优缺点
7.如果OOM直接dump文件到jvisualvm查看发现文件比较小,又发生了oom
8.String字符串拼接操作
问题一,直接赋值和拼接存储地址是同一个么
子主题
问题二,如果拼接的过程中有变量拼接还是否相等
字符创拼接的具体细节
intern
9.垃圾回收GC
什么是垃圾
为什么进行GC
算法概述
标记阶段:引用计数算法
什么是引用计数算法
优点
缺点
标记阶段:可达性分析算法
什么可以作为GC Roots
还有呢?
对象的finalization机制
为什么不建议去调用对象的finalization的方法
MAT与JProfiler的GC Roots溯源
清除阶段:标记-清除算法
缺点是什么?
清除阶段:复制算法
优缺点
清除阶段:标记-压缩算法
执行过程
对比三种算法
0 条评论
回复 删除
下一页