![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
lensen明
knock code with life!!!
展开
-
JVM之类加载机制详解
目录一、类加载1.1 什么是类加载1.2 类加载的时机二、类加载的过程2.1 加载2.2 验证2.2.1 文件格式验证2.2.2 元数据验证2.2.3 字节码验证2.2.4 符号引用验证2.3 准备2.4 解析2.5 初始化2.5.1 \()方法参考自《深入理解Java虚拟机》Java虚拟机是如何加载并识别执行.class文件,以及该识别过程采用何种机制,如何执行的,这些都是Java虚拟机必须了解掌握的,今天就在此做个记录。一、类加载1.1 什么是类加载Java虚拟机把描述类的数据从Class文件原创 2020-12-22 14:17:23 · 253 阅读 · 4 评论 -
JVM垃圾收集器与内存分配深入剖析
目录I.分区内存回收思考一、对象存活判定1.1 引用计数算法1.2 可达性分析算法二、引用2.1 强引用2.2 软引用2.3 弱引用2.4 虚引用三、回收方法区本文参考自《深入理解Java虚拟机》垃圾收集器(Garbage Collection)也就是常说GC,这是JVM的一个核心。那么,我们为什么要去了解垃圾收集和内存分配呢?当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须对这些“自动化”的技术实施必要的监控和调节。I.分区内存回收思考首先,我们考虑一个原创 2020-12-18 14:44:32 · 166 阅读 · 0 评论 -
JVM之运行时数据区
目录一、运行时数据区域1.1 程序计数器1.2 Java虚拟机栈1.3 本地方法栈1.4 Java堆1.5 方法区1.5.1 运行时常量池1.6 直接内存二、HotSpot虚拟机对象探秘2.1 对象的创建2.1.1 指针碰撞2.1.2 空闲列表2.1.3 多线程并发内存分配问题2.2 对象的内存布局2.2.1 对象头2.2.2 实例数据2.2.3 对齐填充2.3 对象的访问定位2.3.1 使用句柄2.3.2 直接指针本文参考自《深入理解Java虚拟机》一、运行时数据区域Java虚拟机在执行Java程序原创 2020-12-18 09:10:51 · 133 阅读 · 0 评论 -
JVM之Java内存模型深入理解
目录一、Java内存模型的基础1.1 Java内存模型(JMM)的抽象结构1.2 源代码到指令序列的重排序二、重排序2.1 数据依赖性2.2 重排序对多线程的影响三、顺序一致性3.1 顺序一致性内存模型3.2 同步程序的顺序一致性效果三、volatile的内存语义3.1 volatile的特性3.2 volatile写-读的内存语义四、final域的内存语义4.1 final域的重排序规则4.2 写final域的重排序规则4.3 读final域的重排序规则4.4 注意五、happens-before规则六、原创 2020-12-11 14:22:25 · 132 阅读 · 1 评论 -
JDK、JRE、JVM 三者关系简要浅析
JDK(Java Development Kit)所谓JDK即java开发工具包,可以理解成我们平常说的集成ide,这是一个很强大的软件。JRE(Java Runtime Environment)JRE即java运行时环境,是我们java程序编写完成后,支撑java程序运行的基础。JVM(Java Virtual Machine)JVM就是java虚拟机,与操作系统底层进行交互,是将java程序编译后生成的.class文件(字节码文件)解释成具体平台的机器指令进行执行。这也就是java能够跨平台的原创 2020-11-30 15:52:07 · 127 阅读 · 0 评论