
JVM学习
心如花木,向阳而生
这个作者很懒,什么都没留下…
展开
-
揭秘JVM-2.1.java执行引擎工作原理——真实的机器调用
java执行引擎工作原理1.JVM作为一款虚拟机,必然涉及计算机核心的三大功能。1,方法调用:方法作为程序组成的基本单元,作为原子指令的基本封装,计算机必须能够支持方法的调用。同样,java语言的原子指令是字节码,java方法是对字节码的封装,因此JVM必须支持对java方法的调用。2,取指:这里的“取指”是指取出指令。方法是对原子指令的封装,计算机进入方法后,最终需要逐条取出这些指令并逐条执行,java方法...原创 2020-10-21 11:18:35 · 387 阅读 · 0 评论 -
揭秘JVM-1.java虚拟机简介
java虚拟机初步简介前言: 我因为自己学习java的东西越来越多,很多东西只得皮毛而不得窥其门道,伴随知识的增长,这种现象让我越来越痛苦,为不知道java对象在JVM内部如何存在而痛苦,为子类到底有没有继承父类的私有属性而痛苦,为当子类重写父类方法时,到底如何选择正确的方法并执行而痛苦,带着这些疑问,我们来揭秘JVM神秘的面纱。1简介作为一名资深的java开发者。那么你一定知...原创 2020-10-16 13:50:15 · 361 阅读 · 0 评论 -
JVM-4.类加载机制
1.本文来源:陈树义的博客园2.终于到了我最感兴趣的地方,解决了我很多疑惑。相信也是很多人感觉疑惑的知识点。当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析、运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制。JVM 虚拟机执行 class 字节码的过程可以分为七个阶段:加载、验证、准备、解析、初始化、使用、卸载。在开始聊之前,先给大家看一道面试题。class Grandpa{ static {原创 2020-07-24 18:01:07 · 194 阅读 · 0 评论 -
JVM-3.内存结构
1.本文来源:陈树义的博客园看到这里,我相信大家对于一个 Java 源文件是如何变成字节码文件,以及字节码文件的含义已经非常清楚了。那么接下来就是让 Java 虚拟机运行字节码文件,从而得出我们最终想要的结果了。在这个过程中,Java 虚拟机会加载字节码文件,将其存入 Java 虚拟机的内存空间中,之后进行一系列的初始化动作,最后运行程序得出结果。那么字节码数据在 Java 虚拟机内存中是如何存放的 ?Java 虚拟机在为类实例或成员变量分配内存是如何分配的 ?要解答上面这些问题,我们首先需要了解一原创 2020-07-24 17:27:21 · 162 阅读 · 0 评论 -
JVM-2.字节码文件结构
本文来源:陈树义的博客园温馨提示:此篇文章长达两万字,图片50多张,内容非常多,建议收藏后再看。前面我们说到 Java 虚拟机使用字节码实现了跨平台的愿景,无论什么系统,我们都可以使用 Java 虚拟机解释执行字节码文件。但其实字节码是有一套规范的,而规定字节码格式的就是《Java 虚拟机规范》。《Java 虚拟机规范》规定了 Java 虚拟机结构、Class 类文件结构、字节码指令等内容。其中类文件结构是有必要了解的一个内容。字节码文件结构是一组以 8 位字节为基础的二进制流,各数据项目严格按原创 2020-07-24 17:10:52 · 215 阅读 · 0 评论 -
JVM-1.源代码到机器码
本文来源:陈树义的博客园1.无论什么语言写的代码,其到最后都是通过机器码运行的,无一例外。下面要说的就是源代码到机器码经历了什么?如下图所示,编译器可以分为:前端编译器、JIT 编译器和AOT编译器。前端编译器:源代码到字节码之前我们说到:对于 Java 虚拟机来说,其实际输入的是字节码文件,而不是 Java 文件。那么对于 Java 语言而言,其实怎么将 Java 代码转化成字节码文件的呢?我们知道在 JDK 的安装目录里有一个 javac 工具,就是它将 Java 代码翻译成字.原创 2020-07-24 16:02:34 · 532 阅读 · 0 评论