JVM学习
文章平均质量分 73
JVM进阶学习笔记
胡琦哈哈哈
这个作者很懒,什么都没留下…
展开
-
JVM学习笔记(15) --Class文件结构
中篇原创 2021-05-13 21:24:27 · 121 阅读 · 0 评论 -
JVM学习笔记(14) 垃圾回收-垃圾回收器
垃圾回收器一. GC分类与性能指标垃圾回收器分类按照线程数分按照工作模式分按照碎片处理方式或工作的内存区间分评估GC的性能指标吞吐量(throughput)暂停时间(pause time)二.不同的垃圾回收器概述垃圾收集器发展史七款经典的垃圾回收器七款经典收集器与垃圾分代之间的关系垃圾回收器的组合关系不同的垃圾回收器概述如何查看默认的垃圾收集器三.Serial回收器: 串行回收四.ParNew回收器 : 并行回收五.Parallel回收器: 吞吐量优先六.CMS回收器: 低延迟七. G1 回收器: 区域化分原创 2021-05-09 10:47:29 · 148 阅读 · 0 评论 -
JVM学习笔记(13) 垃圾回收-相关概念
垃圾回收相关概念一.System.gc() 的理解代码示例GC1GC2GC3GC4GC5二.内存溢出与内存泄漏内存溢出(OOM)内存泄漏(Memory Leak)举例三.Stop The World四.垃圾回收的并行与并发并发(Concurrent)并行(Parallel)垃圾回收的并发与并行五.安全点与安全区域安全点(Safepoint)安全区域(Safe Region)六.再谈引用: 强引用强引用(Strong Reference) -- 不回收七.再谈引用: 软引用(Soft Reference)原创 2021-04-22 21:35:54 · 128 阅读 · 0 评论 -
JVM学习笔记(12) 垃圾回收-垃圾回收相关算法
垃圾回收<2>垃圾回收相关算法一.标记阶段: 引用计数算法对象存活判断方法一 : 引用计数算法循环引用例子小结二.标记阶段: 可达性分析算法方法二: 可达性分析(或搜索算法,追踪性垃圾收集)GC Roots注意三.对象的finalization机制生存还是死亡具体过程示例第一次注释finalize()方法执行:第二次重写finalize()方法执行:四.MAT与JProfiler的GC Roots溯源获取dump文件方式1: 命令行使用jmap方式2: 使用JVisualVM导出导出方法示例在这原创 2021-04-20 19:38:34 · 121 阅读 · 0 评论 -
JVM学习笔记(11) 垃圾回收-概述
垃圾回收<1>概述一.什么是垃圾为什么需要GC早期垃圾回收Java垃圾回收机制一.什么是垃圾为什么需要GC早期垃圾回收Java垃圾回收机制原创 2021-04-18 22:38:27 · 72 阅读 · 0 评论 -
JVM学习笔记(10) StringTable
StringTable一.String基本特性String在JDK9中存储结构变更二.String的内存分配三.String的基本操作在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20210414195115276.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1cWkxNTY5NTcyOT原创 2021-04-18 22:37:58 · 118 阅读 · 0 评论 -
JVM学习笔记(9) 执行引擎
执行引擎一.执行引擎概述执行引擎的执行过程二.Java代码编译和执行过程三.机器码.指令.汇编语言机器码指令汇编语言高级语言字节码解释器解释器工作机制解释器分类JIT编译器一.执行引擎概述执行引擎的执行过程二.Java代码编译和执行过程橙色部分是由javac前端编译而成的下面的可以参考<<编译原理>>三.机器码.指令.汇编语言机器码指令汇编语言高级语言字节码解释器解释器工作机制解释器分类JIT编译器.原创 2021-04-17 23:07:09 · 104 阅读 · 0 评论 -
JVM学习笔记(8)对象的实例化,内存布局与访问定位,直接内存
对象的实例化,内存布局与访问定位一.对象的实例化面试题对象在JVM中是怎么存储的对象头信息里面有那些东西创建对象的步骤二.对象的内存布局三.对象的访问定位一.对象的实例化面试题对象在JVM中是怎么存储的对象头信息里面有那些东西创建对象的步骤二.对象的内存布局三.对象的访问定位...原创 2021-04-12 22:54:37 · 91 阅读 · 0 评论 -
JVM学习笔记(7)运行时数据区之方法区
运行时数据区详解<3>方法区一.栈,堆,方法区的交互关系二.方法区的理解官方文档方法区在哪里方法区的基本理解Hotspot中方法区的演进三.设置方法区大小与OOM代码举例如何解决OOM四.方法区的内部结构类型信息域(Field)信息方法(Method)信息五.方法区使用举例六.方法区的演进细节七.方法区的垃圾回收八.总结一.栈,堆,方法区的交互关系另一种可能,但是java没有选择二.方法区的理解官方文档方法区在哪里方法区的基本理解Hotspot中方法区的演进原创 2021-03-28 21:36:18 · 117 阅读 · 0 评论 -
JVM学习笔记(6)运行时数据区之堆
运行时数据区详解<2>堆一.堆核心概述内存细分二.设置堆的大小与OOM堆空间大小设置OutOfMemorry(堆空间溢出)举例三.年轻代与老年代四.图解对象分配过程五.Minor GC,Major GC , Full GC六.堆空间的分代思想七.内存分配策略八.为对象分配内存:TLAB九.小结堆空间的参数设置十.堆是分配对象的唯一选择吗一.堆核心概述如图所示,开启了两个进程代码一样,在JDK自带的jvisualvm.exe工具中可以查看到两个进程分别拥有一个堆空间,原创 2021-03-27 22:14:24 · 126 阅读 · 0 评论 -
JVM学习笔记(5)-本地方法接口
本地方法接口一.本地方法接口什么是本地方法举例为什么要使用Native Method现状二.本地方法栈一.本地方法接口本地方法接口非运行时数据区中什么是本地方法举例为什么要使用Native Method现状二.本地方法栈...原创 2021-03-23 22:22:18 · 74 阅读 · 0 评论 -
JVM学习笔记(4)-运行时数据区详解之程序计数器与虚拟机栈
运行时数据区详解<1>程序计数器与虚拟机栈一.程序计数器(PC寄存器)PC Register介绍作用:举例说明两个常见问题1:2:cpu时间片二.虚拟机栈虚拟机栈概述虚拟机栈出现的背景内存中的栈与堆虚拟机栈基本内容栈的特点(优点)栈中可能会发生的异常设置栈内存的大小示例:栈的存储单位栈中存储什么:栈运行原理方法的两种结束方式栈帧的内部结构局部变量表jclass插件中字节码文件的查看方法:java代码:静态方法,字节码解析:关于Slot(变量槽)的理解Slot的重复利用举例: 静态变量与局部变量的原创 2021-03-21 20:54:39 · 328 阅读 · 1 评论 -
JVM学习笔记(3)-运行时数据区概述及线程
运行时数据区概述及线程一.概述具体内存划分关于线程间共享的说明二.线程JVM系统线程一.概述当class文件加载完成之后,加载之后的数据是存放在了运行时数据区中的,执行引擎执行时从运行时数据区中获取需要的数据Hotspot具体内存划分其中JDK1.7之前方法区的具体实现是叫永久代,JDK1.8之后叫做元空间其中元空间和代码缓存(JIT编译产物)可以统一是方法区里面的,也可以是属于分开的,不同的人不一样的叫关于线程间共享的说明一个JVM只有一个RunTime实例原创 2021-03-20 13:17:19 · 79 阅读 · 0 评论 -
JVM学习笔记(2)-类加载子系统
类加载子系统一.内存结构简述内存结构简图:运行简述:详细图:英文版:中文版:二.类加载器与类的加载过程简述:类加载器子系统作用:类加载器ClassLoader角色:类的加载过程:加载过程详情:加载:补充: 加载.class文件的方式链接:初始化:示例1:示例2:示例3:三.类加载器分类虚拟机自带的加载器:引导类加载器: Bootstrap ClassLoader扩展类加载器: Extension ClassLoader应用程序类加载器(系统类加载器) : AppClassLoader用户自定义类加载器:示例原创 2021-03-20 13:15:43 · 95 阅读 · 0 评论 -
JVM学习笔记(1)-Java体系结构
笔记<1>一.Java体系结构Java&JVM基础介绍语言的执行顺序java 生态圈java的跨平台性JVM:跨语言的平台虚拟机JVM的位置二.JVM的整体结构三.JVM的架构模型基于栈的指令集架构和基于寄存器的指令集架构的区别四.JVM的生命周期启动和执行退出五.JVM的发展历程Sun Classic VMExact VMSUN公司 HotSpot VMBEA 的 JRockitIBM 的 J9一.Java体系结构Java&JVM基础介绍JVM是基于栈的架构模型, 还原创 2021-03-20 13:00:57 · 141 阅读 · 0 评论