
JVM
远夏_
这个作者很懒,什么都没留下…
展开
-
[JVM] 1.1 自动内存管理机制:java内存区域与内存溢出异常
java内存区域与内存溢出异常1.运行时数据区域1.1 程序计数器1.2 Java虚拟机栈1.3 本地方法栈1.4 Java堆1.5 方法区1.6 运行时常量池1.7 直接内存2. HotSpot虚拟机对象2.1 对象的创建2.2 对象的内存布局2.3 对象的访问定位本篇博客内容基本出自《深入理解java虚拟机》 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面...原创 2019-04-14 21:34:24 · 155 阅读 · 0 评论 -
[JVM]1.2 自动内存管理机制:垃圾收集器
垃圾收集器与内存分配策略1 对象已死吗1.1 引用计数算法1.2 可达性分析算法1.3 引用1.4 生存还是死亡1.5 回收方法区2 垃圾收集算法2.1 标记-清除算法(Mark-Sweep)2.2 复制算法2.3 标记一整理算法(Mark-Compact)2.4 分代收集算法( Generational Collection)3 HotSpot 的算法实现3.1 枚举根节点3.2 安全点3.3 ...原创 2019-04-14 23:12:05 · 670 阅读 · 0 评论 -
[JVM]2.1 虚拟机执行子系统:类文件结构
类文件结构无关性的基石Class 类文件的结构1. 魔数与Class文件的版本2. 常量池3. 访问标志4. 类索引、父类索引与接口索引集合5. 字段表集合6. 方法表集合7. 属性表集合7.1 Code属性7.2 Exception属性7.3 LineNumberTable属性7.4 LocalVariableTable属性7.5 SourceFile属性7.6 ConstantValue属性7...原创 2019-04-22 20:31:29 · 270 阅读 · 0 评论 -
[JVM]1.3 自动内存管理机制:内存分配策略
内存分配策略内存分配与回收策略1. 对象优先在Eden分配2. 大对象直接进入老年代3. 长期存活的对象将进入老年代4. 动态对象年龄判定5. 空间分配担保本篇博客内容基本出自《深入理解java虚拟机》 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。内存分配与回收策略Java技术体系中所提倡的自动内存管理最终可以归结为自动化...原创 2019-04-22 21:52:30 · 174 阅读 · 0 评论 -
[JVM]2.2 虚拟机执行子系统:字节码指令
类文件结构本篇博客内容基本出自《深入理解java虚拟机》原创 2019-04-23 13:59:32 · 601 阅读 · 0 评论 -
[JVM] 2.6 虚拟机执行子系统:方法调用
3. 方法调用方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,但前面已经讲过, Class 文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(相当于之前说的直接引用)它这个...原创 2019-04-27 19:28:54 · 395 阅读 · 0 评论 -
[JVM]2.3 虚拟机执行子系统:虚拟机类加载时机与过程
虚拟机类加载时机与过程1. 概述2. 类加载的时机3. 类加载的过程3.1 加载3.2 验证文件格式验证元数据验证字节码验证符号引用验证3.3 准备3.4 解析类或接口的解析字段解析类方法解析接口方法解析3.5 初始化本篇博客内容基本出自《深入理解java虚拟机》代码编译的结果从本地机器码转变为字节码,是存储格式发展的—小步,却是编程诏言发展的一大步。1. 概述上一说我们了解了Class ...原创 2019-04-23 15:22:47 · 191 阅读 · 0 评论 -
[JVM]2.4 虚拟机执行子系统:虚拟机类加载器
虚拟机类加载器1. 类与类加载器2. 双亲委派模型3. 破坏双亲委派模型3.1 第一次“被破坏”3.2 第二次“被破坏”3.3 第三次“被破坏”本篇博客内容基本出自《深入理解java虚拟机》代码编译的结果从本地机器码转变为字节码,是存储格式发展的—小步,却是编程诏言发展的一大步。1. 类与类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到...原创 2019-04-23 15:52:00 · 258 阅读 · 0 评论 -
[JVM] 2.5 虚拟机执行子系统5:运行时栈帧结构
运行时栈帧结构1. 概述2. 运行时栈帧结构2.1 局部变量表2.2操作数栈(Operand Stack)2.3 动态连接(Dynamic Linking)2.4 方法返回地址2.5 附加信息本篇博客内容基本出自《深入理解java虚拟机》代码编译的结果从本地机器码转变为字节码,是存储格式发展的—小步,却是编程语言发展的一大步。1. 概述执行引擎是Java 虚拟机最核心的组成部分之一。“虚拟...原创 2019-04-23 19:44:58 · 347 阅读 · 0 评论