Java虚拟机
Java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,实现了一次编写 ,到处运行。
RyanJohnson
敏于观察,勤于思考,善于综合,勇于创新。
展开
-
深入理解Java虚拟机-垃圾回收器与内存分配策略
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来。文章目录概述对象已死吗引用计数法可达性分析算法再谈引用生存还是死亡回收方法区垃圾收集算法标记-清除算法复制算法标记-整理算法分代收集算法新生代(Young generation)老年代(Old generation)永久代(permanent generation)小结垃圾收集算法小结H...原创 2020-01-04 13:08:32 · 16320 阅读 · 11 评论 -
深入理解Java虚拟机-高效并发
并发处理的广泛应用是使得Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器。文章目录Java内存模型与线程概述硬件的效率与一致性Java内存模型主内存与工作内存内存间交互操作对 volatile 型变量的特殊规则对 long 和 double 型变量的特殊规则原子性、可见性和有序性先行发生原则Java与线程线程的实现Java线程的实现Jav...原创 2020-01-04 18:22:38 · 12261 阅读 · 6 评论 -
深入理解Java虚拟机-程序编译与代码优化
从计算机程序出现的第一天起,对效率的追求就是程序天生的坚定信仰,这个过程犹如一场没有终点,永不停歇的F1方程式竞赛,程序员试车手,技术平台则是在赛道上飞驰的赛车。文章目录早期(编译期)优化概述Javac编译器Javac的源码与调试解析与填充符号表注解处理器语义分析与字节码生成Java 语法糖的味道泛型与类型擦除自动装箱、拆箱与遍历循环条件编译实战:插入式注解处理器晚期(运行期)优化概述HotSp...原创 2020-01-04 17:52:18 · 10908 阅读 · 2 评论 -
深入理解Java虚拟机-虚拟机执行子系统
文章目录类文件结构概述无关性的基石Class类文件的结构魔数与 Class 文件的版本常量池访问标志类索引、父类索引与接口索引集合字段表集合方法表集合属性表集合字节码指令简介公有设计和私有实现Class文件结构的发展虚拟机类加载机制概述类加载时机类加载过程加载验证准备解析初始化类加载器类与类加载器双亲委派模型类加载器的关系类加载器的作用类加载器的特点类加载器的隔离问题破坏双亲委派模型字节码执行引擎...原创 2020-01-04 17:00:27 · 12518 阅读 · 7 评论 -
深入理解Java虚拟机-Java内存区域与内存溢出异常
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来。文章目录概述运行时数据区域程序计数器(线程私有)Java虚拟机栈(线程私有)局部变量表操作数栈动态链接方法返回地址小结本地方法栈(线程私有)Java堆(全局共享)方法区(全局共享)运行时常量池直接内存HotSpot虚拟机对象探秘对象的创建1.判断对象对应的类是否加载、链接、初始化2.为对...原创 2020-01-03 21:42:24 · 20417 阅读 · 15 评论 -
深入理解Java虚拟机-走近Java
文章目录概述Java技术体系Java发展史Java虚拟机发展史展望Java技术的未来实战:自己编译JDK本章小结本博客主要参考周志明老师的《深入理解Java虚拟机》第二版读书是一种跟大神的交流。阅读《深入理解Java虚拟机》受益匪浅,对Java虚拟机有初步的认识。这里写博客主要出于以下三个目的:一方面是记录,方便日后阅读;一方面是加深对内容的理解;一方面是分享给大家,希望对大家有帮助。...原创 2020-01-02 15:02:08 · 20762 阅读 · 10 评论